Основа этого метода состоит в том, что каждая точка в Л/-мерном пространстве может рассматриваться как проекция точки из (N+1)- мерного пространства. Так, точка в двухмерном пространстве представляется тремя составляющими х, у, w, где поможет принимать любое значение. Обычно используют w= 1, что соответствует нормализованным координатам (х, у, 1). Таким образом, при решении задач компьютерной графики одно-
370
родные координаты вводятся так, что произвольной точке М (х, у) ставится в соответствие точка М*(х, у, 1) (рис. 26.9).
Рис. 26.9. Однородные координаты точки М
Свойства однородных координат позволяют выражать с помощью одной матрицы все преобразования - повороты, растяжения, отражения и сдвиги, а так же любые их комбинации - в виде произведения матриц.
Для двухмерного случая компьютерной графики однородные координаты исходной точки М и преобразованной точки М* связаны между собой следующим соотношением:
[х* у* 1] = [x y 1]
a11 | a12 | a13 |
a21 | a22 | a23 |
a31 | a32 | a33 |
Основные преобразования выражаются с помощью соответствующих частных матриц: поворот на угол ?
[R] =
cos? | sin ? | 0 |
-sin ? | cos? | 0 |
0 | 0 | 1 |
растяжение вдоль координатных осей с коэффициентами ? и ?
[D] =
? | 0 | 0 |
0 | ? | 0 |
0 | 0 | 1 |
отражение (относительно оси абсцисс)
[M]=
1 | 0 | 0 |
0 | -1 | 0 |
0 | 0 | 1 |
371
перенос на вектор (?, ?)
[T]=
1 | 0 | 0 |
0 | -1 | 0 |
? | ? | 1 |
При выполнении любого преобразования на плоскости оно разбивается на отдельные этапы, описываемые матрицами [R], [D], [M], [T].
Для случая трехмерной графики однородные координаты исходной точки М и преобразованной точки М* связаны между собой следующим соотношением:
[x* y* z* 1]=[x y z 1]
a11 | a12 | a13 | a14 |
a21 | a22 | a23 | a24 |
a31 | a32 | a33 | a34 |
a41 | a42 | a43 | a44 |
При этом основные преобразования выражаются с помощью матриц следующим образом: Поворот на угол вокруг оси X
[Rx] =
1 | 0 | 0 | 0 |
0 | cos ? | sin ? | 0 |
0 | 0 | 0 | 1 |