Конспект лекций по компьютерной графике. Конспект лекций по дисциплине Компьютерная графика
![]()
|
2.1.2 Аффинные преобразования на плоскостиЭто частный случай преобразований, который достаточно часто используется при создании графических пакетов. Зададим некоторую двумерную систему координат (x,у). Аффинное преобразование на плоскости описывается формулами ![]() где А, В,..., F— константы. Значение (X, Y) можно рассматривать как координаты в новой системе координат. Обратное преобразование (X, Y) в (х, у) также является аффинным: ![]() Аффинное преобразование удобно записывать в матричном виде. Константы А, В..... Fобразуют матрицу преобразования, которая, будучи умноженной на матрицу-столбец координат (x, у), дает матрицу-столбец (X, Y). Однако, чтобы учесть константы С и F, необходимо перейти к так называемым однородным координатам — прибавим еще одну строку в матрицах координат: ![]() Теперь рассмотрим частные случаи аффинного преобразования.
![]() Рис. 2.9. Параллельный сдвиг координат ![]() В матричной форме ![]() Обратное преобразование: ![]() ![]()
![]() Рис. 2.10. Растяжение-сжатие осей координат ![]() ![]() Обратное преобразование: ![]() Коэффициенты kx и ky могут быть отрицательными. Например, kx= -1 соответствует зеркальному отражению относительно оси y.
![]() Рис.2.11. Поворот ![]() Обратное преобразование соответствует повороту системы (X, Y) на угол (-α). ![]() ![]() Свойства аффинного преобразования. • Любое аффинное преобразование может быть представлено как последовательность операций из числа указанных простейших: сдвиг, растяжение/сжатие и поворот. • Сохраняются прямизна линии, параллельность прямых, отношение длин отрезков, лежащих на одной прямой, и соотношение площадей фигур. Трехмерное аффинное преобразование Запишем в виде формулы: ![]() Дадим также запись в матричной форме: ![]() Для трехмерного пространства любое аффинное преобразование также может быть представлено последовательностью простейших операций. Рассмотрим их. 1. Сдвиг осей координат соответственно на dx, dy, dz: ![]() ![]() 2. Растяжение/сжатие на кx, кy, кz. ![]() ![]() 3. Повороты. Можно сказать, что в трехмерном пространстве существует больше разновидностей поворота, сравнительно с двумерным пространством. Рассмотрим несколько частных случаев поворота. Поворот вокруг оси xна угол φ (рис. 2. 12). ![]() Рис. 2.12. Поворот вокруг оси X ![]() ![]() П ![]() ![]() П ![]() ![]() Рис. 2.13. Поворот вокруг осей y и z |