Аффинные преобразования на плоскости. В компьютерной графике все, что относится к двумерному случаю

В компьютерной графике все, что относится к двумерному случаю, принято обозначать символом 2D (2-dimension).

Допустим, на плоскости введена прямолинейная координатная система. Тогда каждой точке Мставится в соответствие упорядоченная пара чисел (х,у) ее координат ( рис 3.9 ).

Аффинные преобразования на плоскости. В компьютерной графике все, что относится к двумерному случаю - student2.ru

Рис. 3.42 Точка в прямоугольной системе координат

Вводя на плоскости еще одну прямолинейную систему координат, мы ставим в соответствие той же точке М другую пару чисел - (х*, у*).

Переход от одной прямолинейной координатной системы на плоскости к другой описывается следующими соотношениям:

х*=aх+bу+l;

у*=gх+bу+m;

где a,b,g,l,m - произвольные числа, связанные неравенством

Аффинные преобразования на плоскости. В компьютерной графике все, что относится к двумерному случаю - student2.ru .

В аффинных преобразованиях плоскости особую роль играют несколько важных частных случаев, имеющих хорошо прослеживаемые геометрические характеристики. При исследовании геометрического смысла числовых коэффициентов в формулах (*) для этих случаев удобно считать, что заданная система координат является прямоугольной декартовой.

А.Поворот (вокруг начальной точки на угол j) (рис. 3.43) описывается формулами

х*= х cosj-y sinj,

y*= x sinj+y cosj.

Аффинные преобразования на плоскости. В компьютерной графике все, что относится к двумерному случаю - student2.ru

Рис. 3.43 Поворот точки на угол Аффинные преобразования на плоскости. В компьютерной графике все, что относится к двумерному случаю - student2.ru

Б.Растяжение (сжатие) вдоль координатных осей можно задать так:

x*=a x,

y*=d y,

a>0, d>0.

Растяжение (сжатие) вдоль оси абсцисс обеспечивается при условии, что a >1
(a <1). На рис. 3.44 a =d >1.

Аффинные преобразования на плоскости. В компьютерной графике все, что относится к двумерному случаю - student2.ru

Рис. 3.44 Растяжение вдоль осей

В.Отражение (относительно оси абсцисc) (рис. 3.45) задается при помощи формул

x*= x,

y*= -y.

Аффинные преобразования на плоскости. В компьютерной графике все, что относится к двумерному случаю - student2.ru

Рис. 3.45 Отражение относительно оси абсцисс

Г.На рис. 3.46 вектор переноса ММ* имеет координаты l и m. Перенос обеспечивают соотношения

х*=х +l;

у*=у+m;

Выбор этих четырех частных случаев определяется двумя обстоятельствами.

Каждое из приведенных выше преобразований имеет простой и наглядный геометрический смысл (геометрическим смыслом наделены и постоянные числа, входящие в приведенные формулы).

Как доказывается в курсе аналитической геометрии, любое преобразование вида (*) всегда можно представить как последовательное использование (суперпозицию) простейших преобразований вида А,Б, ВиГ (или части этих преобразований).

Аффинные преобразования на плоскости. В компьютерной графике все, что относится к двумерному случаю - student2.ru

Рис. 3.46 Перенос точки

Таким образом, справедливо следующее важное свойство аффинных преобразований плоскости: любое отображение вида (*) можно описать при помощи отображений, задаваемых формулами А, Б, В и Г.

Для эффективного использования этих известных формул в задачах компьютерной графики более удобной является их матричная запись. Матрицы, соответствующие случаям А, Б и В, строятся легко и имеют соответственно следующий вид:

Аффинные преобразования на плоскости. В компьютерной графике все, что относится к двумерному случаю - student2.ru Аффинные преобразования на плоскости. В компьютерной графике все, что относится к двумерному случаю - student2.ru

Однако для решения задач компьютерной графики весьма желательно охватить матричным подходом все четыре простейших преобразования (в том числе и перенос), а, значит, и общее аффинное преобразование. Этого можно достичь, например, так: перейти к описанию произвольной точки плоскости, не упорядоченной парой чисел, как это было сделано выше, а упорядоченной тройкой чисел.

Наши рекомендации