В компьютерной графике все, что относится к двумерному случаю принято обозначать символом (2D) (2-dimention).
Допустим, что на плоскости введена прямолинейная координатная система. Тогда каждой точке М ставится в соответствие упорядоченная пара чисел (х, у) ее координат (рис. 5). Вводя на плоскости еще одну прямолинейную систему координат, мы ставим в соответствие той же точке М другую пару чисел – (x*, y*).
Переход от одной прямолинейной координатной системы на плоскости к другой описывается следующими соотношениями:
x*=ax+ by +l, (2.1)
y*=gx+ by + m, (2.2)
где a, b, g, l, m -- произвольные числа, связанные неравенством:
(2.3)
Формулы (2.1) и (2.2) можно рассматривать двояко: либо сохраняется точка и изменяется координатная система (рис. 6) – в этом случае произвольная точка М остается той же, изменяются лишь ее координаты (х, у) | (х*, y*), либо изменяется точка и сохраняется координатная система (рис. 7) – в этом случае формулы (2.1) и (2.2) задают отображение, переводящее произвольную точку М (х, у) в точку М* (х*, у*), координаты которой определены в той же координатной системе.
X*
Y*
В дальнейшем, формулы (2.1) и (2.2) будут рассматриваться как правило, согласно которому в заданной системе прямолинейных координат преобразуются точки плоскости.
В аффинных преобразованиях плоскости особую роль играют несколько важных частных случаев, имеющих хорошо прослеживаемые геометрические характеристики. При исследовании геометрического смысла числовых коэффициентов в формулах (2.1) и (2.2) для этих случаев удобно считать, что заданная система координат является прямоугольной декартовой.
1. Поворот вокруг начальной точки на угол j (рис. 8) описывается формулами:
х* = x cosj - y sinj, (2.3)
y* = x sinj - y cosj. (2.4)
2. Растяжение (сжатие) вдоль координатных осей можно задать так:
x* = ax, (2.5)
y* = dy, (2.6)
a > 0, d > 0. (2.7)
Растяжение (сжатие) вдоль оси абсцисс обеспечивается при условии, что a > 1 (a < 1). На рис. 5 a = d > 1.
2. Отражение (относительно оси абсцисс) (рис. 10) задается при помощи формул:
x* = x, (2.8)
y* = -y. (2.9)
3. На рис. 11 вектор переноса ММ* имеет координаты l, m. Перенос обеспечивает соотношения:
x* = x + l, (2.10)
y* = y + m. (2.11)
Выбор этих четырех частных случаев определяется двумя обстоятельствами.
1. Каждое из приведенных выше преобразований имеет простой и наглядный геометрический смысл (геометрическим смыслом наделены и постоянные числа, входящие в приведенные формулы).
2. Как известно из курса аналитической геометрии, любое преобразование вида (2.1) всегда можно представить как последовательное исполнение (суперпозицию) простейших преобразований вида 1 – 4 (или части этих преобразований).
Таким образом, справедливо следующее важное свойство аффинных преобразований плоскости: любое отображение вида (2.1) можно описать при помощи отображений, задаваемых формулами (2.3) – (2.11).
Для эффективного использования этих известных формул в задачах компьютерной графики более удобной является их матричная запись. Матрицы, соответствующие случаям 1 – 3, строятся легко и имеют соответственно следующий вид: