ВУЗ:
Составители:
Основы компьютерной графики для программистов 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
Страницы
- « первая
- ‹ предыдущая
- …
- 26
- 27
- 28
- 29
- 30
- …
- следующая ›
- последняя »
