4.4. При работе исключительно с двухмерными объектами можно использовать трехмерные однородные координаты для представления точки в виде р = [ху I]7 и векторов в виде V = [а Ъ 0]'. Какой вид будут иметь в этом случае ЗхЗ-матрицы преобразований поворота, сдвига, масштабирования и скоса. Сколько степеней свободы у каждого из этих преобразований?
4.5. Параметры аффинного преобразования можно однозначно определить, сравнивая положение нескольких точек до и после выполнения преобразования. Сколько таких точек нужно использовать для однозначного описания аффинного преобразования в трехмерном пространстве? Сколько их требуется для решения этой же задачи в двухмерном пространстве?
Упражнения
4.6. Какой вид примет матрица поворота при работе в левосторонней системе координат и как нужно переопределить положительное направление вращения?
4.7. Покажите, что любая последовательность поворотов и сдвигов может быть заменена единственным поворотом с фиксированной точкой в начале координат и сдвигом.
4.8. Выведите матрицу преобразования скоса в виде суперпозиции матриц поворота, сдвига и масштабирования.
4.9. В двухмерном пространстве прямую можно задать уравнением у = тх+И. Найдите аффинное преобразование, которое сформирует отражение точки относительно этой прямой. Обобщите полученный результат на отражение точки относительно плоскости в трехмерном пространстве.
4.10. В разделе 4.8 было показано, что матрица поворота вокруг произвольной оси может быть получена в результате суперпозиции трех матриц поворотов вокруг координатных осей. Сколько способов подобного разложения существует? Всегда ли нужно использовать все три оси координат?
4.11. Добавьте в набор преобразований экземпляра преобразование скоса. Покажите, как использовать такой расширенный набор для формирования параллелепипеда из единичного куба.
4.12. Отыщите представление плоскости в однородных координатах.
4.13. Какой вид имеет матрица поворота, сформированная функцией glRotate(). Элементы матрицы должны зависеть от аргументов вызова glRotate().