координата x точки не изменяется, а координата y линейно зависит от коэффициента b.
Причем преобразование общего вида, примененное к началу координат (точка [0,0]), не приведет к изменению координат этой точки. То есть начало координат инвариантно при данном преобразовании. Это ограничение преодолевается при использовании однородных координат.
Если подвергнуть общему преобразованию координат различные фигуры, то можно установить, что параллельные прямые преобразуются в параллельные прямые, середина отрезка преобразуется в середину отрезка, параллелограмм преобразуется в параллелограмм и т. д.
Для примера рассмотрим преобразование единичного квадрата
(рис. 3.1).
Y
1 |
|
|
|
|
D |
C |
|
|
|
|
|
|
||
|
A |
B |
|
X |
|
|
|
|
|
0 |
|
|
|
|
|
1 |
|
||
|
Рис. 3.1. Единичный квадрат |
|
||
Четыре вектора положения точек единичного квадрата можно записать в виде матрицы
A 0 0
B1 0
C1 1 D 0 1
36
Общее преобразование дает: |
|
|
|
|
||||
0 |
0 |
|
|
0 |
0 |
A |
|
|
1 |
0 |
a |
b |
a |
b |
B |
. |
|
1 |
1 |
c |
d |
a c |
b d |
C |
||
|
||||||||
0 |
1 |
|
|
c |
d |
D |
|
|
Результат можно посмотреть на рис. 3.2.
Вывод: новые координаты точки B
определяются первой строкой матрицы преобразования, а новые координаты точки D
– второй строкой, и если координаты точек B
и D
известны, то можно определить матрицу преобразования.
Y
|
C |
|
D |
A |
B |
X |
|
0 |
1 |
Рис. 3.2. Результат общего преобразования
Можно воспользоваться этим для определения матрицы, которая определяет вращение фигуры относительно начала координат на произвольный угол (рис 3.3).
Координаты B
равны:
x cos , y sin .
Координаты точки D
вычисляются аналогично, и матрица преобразования выглядит следующим образом:
cos θ |
sin θ . |
sin θ |
cosθ |
37 |
|
Y
C
C
D D B
X
(A)A
B
Рис. 3.3. Вращение единичного квадрата на произвольный угол
Для частных случаев, например поворот на 90 , матрица преобразования выглядит так:
0 |
1 . |
1 |
0 |
Тогда как двумерное вращение в плоскости XY осуществляется вокруг оси, перпендикулярной этой плоскости, отображение выполняется поворотом на 180
вокруг оси, лежащей в плоскости XY. Отображение вокруг оси Y = X:
0 |
1 |
, |
1 |
0 |
|
вокруг оси Y = 0: |
|
|
1 |
0 |
, |
0 |
1 |
|
вокруг оси X = 0: |
|
|
1 |
0 . |
|
0 |
1 |
|
38
3.2. Однородные координаты
Преобразования переноса масштабирования и поворота записываются в матричной форме в виде:
P P T ,
P P S,
P P R.
То есть перенос в отличие от масштабирования и поворота реализуется с помощью сложения, так как вводить константы переноса внутрь общей матрицы 2 × 2 не представляется возможным. Но желательно иметь единую форму. Кроме того, начало координат, как уже говорилось выше, инвариантно к общим преобразованиям. Эту проблему можно решить за счет третьей компоненты в векторе точки
[x y 1].
Матрица преобразования для смещения будет иметь следующий вид (3 × 2):
1 0
0 1 , m n
так как число столбцов в матрице, описывающей точку, должно равняться числу строк в матрице преобразования
1 0
x y 1 0 1 |
x m y n , |
m n
где m и n – константы перемещения.
Так как матрица 3 × 2 не является квадратной, то она не имеет обратной матрицы, что затрудняет дальнейшие вычисления. И, следовательно, дополняем ее до квадратной матрицы 3 × 3:
1 0 0
0 1 0 , m n 1
39
используя эту матрицу, получим
1 0 0
x y 1 0 1 0 |
x m y m 1 . |
m n 1
Третья компонента положения точки не изменяется при добавлении третьего столбца к матрице преобразования, но позволяет выполнить смещение. Третий элемент можно рассматривать как дополнительную координату вектора положения, и в общем случае вектор положения точки [x y 1] при воздействии на него матрицы преобразования 3 × 3 становится вектором
X Y H X / H Y / H 1
и преобразование в трехмерном пространстве в данном случае ограничивается плоскостью.
Итак, представление двумерного вектора трехмерным (или n- мерного вектора n + 1-мерным) называется однородным координатным воспроизведением. При однородном координатном воспроизведении n-мерного вектора все действия выполняются в n+1-мерном пространстве, а конечные результаты в n-мерном пространстве вычисляются с помощью обратного преобразования.
Не существует единственного однородного координатного представления точки в двумерном пространстве. Так, матрицы
[12 8 4], [6 4 2] и [3 2 1]
представляют одну и ту же точку [3 2].
Преимущество введения однородных координат проявляется при использовании матрицы общего вида (3 × 3)
a b p
c d q , m n s
с помощью которой можно выполнять все основные геометрические преобразования. Матрицу можно разделить на четыре части:
40