Основы компьютерной графики для программистов. Казанцев А.В. - 28 стр.

UptoLike

Составители: 

Основы компьютерной графики для программистов 28
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
Так, двумерный вектор
()
yx,
в однородных координатах записывается в виде
()
wwywx ,, , где 0
w . Число w называется масштабным множителем. Для того, чтобы
из вектора, записанного в однородных координатах получить вектор в обычных
координатах необходимо разделить первые
две координаты на третью:
()()
1,,/,/,/ yxwwwwywwx .
В общем случае осуществляется переход от
n-мерного пространства к
()
1+n
-мерному. Это преобразование не
единственное. Обратное преобразование
называется проекцией однородных
координат.
Рассмотрим некоторые свойства
однородных координат. Некоторые точки,
неопределенные в n-мерном пространстве,
становятся вполне определенными при
переходе к однородным координатам.
Например, однородный вектор
(
)
0,1,0,0 в трехмерном пространстве соответствует
бесконечно удаленной точке
=
z . Поскольку в однородных координатах эту точку
можно представить в виде
()
ε
,1,0,0 , при 0
ε
, то в трехмерном пространстве это
соответствует точке
()
ε
/1,0,0
.
Рассмотрим точку трехмерного пространства
(
)
cba ,, . Если представить эту точку как
однородное представление точки двумерного пространства, то ее координаты будут
()
cbca /,/ . Сравнивая эти координаты со вторым видом формул, выведенных для
центральной перспективной проекции, легко заметить, что двумерное представление
точки с координатами
()
cba ,,
выглядит как ее проекция на плоскость 1
=
z , как
показано на рис. 26.
Аналогично, рассматривая применение однородных координат для векторов
трехмерного пространства, можно представить трехмерное пространство как проекцию
четырехмерного пространства на гиперплоскость
1=w , если
()( )( )
1,,,,,,,, zyxwwzwywxzyx =
.
В однородных координатах преобразование центральной перспективы можно
определить матричной операцией. Эта матрица записывается в виде:
P
k
k
k
=
000
1000
000
000
Покажем, что эта матрица определяет преобразование точки объекта, заданной в
однородных координатах, в точку перспективной проекции (также в однородных
координатах). Пусть
()
zyxp ,,=
точка в трехмерном пространстве. Ее однородное
представление
(
)
wwzwywx ,,,v = . Умножим v на P:
(
)
[]
(
)
(
)
[
]
1,0,/,/,0,,v kzkykzkxkzwwkywkxP
+
+
=
+
=
Рис. 12. Проекция на плоскость z=1.
Основы компьютерной графики для программистов                                                                  28
____________________________________________________________________________________________________________________



Так, двумерный вектор ( x, y ) в однородных координатах записывается в виде
(wx, wy, w) , где w ≠ 0 . Число w называется масштабным множителем. Для того, чтобы
из вектора, записанного в однородных координатах получить вектор в обычных
координатах необходимо разделить первые
две        координаты             на  третью:
(wx / w, wy / w, w / w) → (x, y,1) .
В общем случае осуществляется переход от
n-мерного        пространства          к
(n + 1) -мерному. Это преобразование не
единственное. Обратное преобразование
называется       проекцией    однородных
координат.
Рассмотрим        некоторые        свойства
однородных координат. Некоторые точки,
неопределенные в n-мерном пространстве,           Рис. 12. Проекция на плоскость z=1.
становятся вполне определенными при
переходе к однородным координатам.
Например, однородный вектор (0,0,1,0 ) в трехмерном пространстве соответствует
бесконечно удаленной точке z = ∞ . Поскольку в однородных координатах эту точку
можно представить в виде (0,0,1, ε ) , при ε → 0 , то в трехмерном пространстве это
соответствует точке (0,0,1 / ε ) .
Рассмотрим точку трехмерного пространства (a, b, c ) . Если представить эту точку как
однородное представление точки двумерного пространства, то ее координаты будут
(a / c, b / c ) . Сравнивая эти координаты со вторым видом формул, выведенных для
центральной перспективной проекции, легко заметить, что двумерное представление
точки с координатами (a, b, c ) выглядит как ее проекция на плоскость z = 1 , как
показано на рис. 26.
Аналогично, рассматривая применение однородных координат для векторов
трехмерного пространства, можно представить трехмерное пространство как проекцию
четырехмерного            пространства       на гиперплоскость    w = 1,     если
(x, y, z ) → (wx, wy, wz, w) = (x, y, z,1) .
В однородных координатах преобразование центральной перспективы можно
определить матричной операцией. Эта матрица записывается в виде:


                                                               ⎡k    0   0    0⎤
                                                               ⎢0    k   0    0 ⎥⎥
                                                               ⎢                   =P
                                                               ⎢0    0   0    1⎥
                                                               ⎢                 ⎥
                                                               ⎣0    0   0    k⎦

Покажем, что эта матрица определяет преобразование точки объекта, заданной в
однородных координатах, в точку перспективной проекции (также в однородных
координатах). Пусть p = ( x, y, z ) – точка в трехмерном пространстве. Ее однородное
представление v = (wx, wy , wz , w) . Умножим v на P:
                                    v P = [wkx, wky,0, w(z + k )] = [kx / ( z + k ), ky / (z + k ),0,1]

http://www.ksu.ru/persons/9134.ru.html