ВУЗ:
Составители:
ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 1 35
матрицами размером 44 × . Тогда трехмерная точка
(
)
zyx ,,
записывается в
однородных координатах как
(
)
wwzwywx ,,,, где 0
≠
w . Для получения
декартовых координат надо первые три однородные координаты разделить на
w . Два однородных вектора описывают одну декартову точку в трехмерном
пространстве, если
21
cHH = , где 0
≠
=
Cons
t
c и
21
, HH - векторы,
записанные в однородных координатах.
Матрицы преобразований будем записывать в правосторонней системе
координат. При этом положительный поворот определяется следующим
образом. Если смотреть из положительной части оси вращения (например,
оси
z
) в направлении начала координат, то поворот на
o
90 против часовой
стрелки будет переводить одну положительную полуось в другую (ось
x
в y ,
в соответствии с правилом циклической перестановки).
Заметим, что на практике удобнее применять левостороннюю систему
координат, так как в этом случае удобнее интерпретировать тот факт, что
точки с большими значениями
z находятся дальше от наблюдателя.
Запишем теперь матрицу трехмерного переноса. Аналогично
двумерному случаю.
()
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1
0100
0010
0001
,,
zyx
zyx
DDD
DDDT , при этом
[]
(
)
[
]
1,,,,,1,,,
zyxzyx
DzDyDxDDDTzyx +
+
+
=
⋅ .
Операция масштабирования:
()
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1000
000
000
000
,,
z
y
zyx
S
S
S
SSSS
[]
(
)
[
]
1,,,,,1,,, zSySxSSSSSzyx
zyxzyx
⋅
⋅
⋅
=
⋅
Перейдем к операции поворота, с ней в трехмерном случае придется
разбираться чуть побольше чем в двумерном. Так как при двумерном
повороте в плоскости
xy
координаты z остаются неизменными, то поворот
вокруг оси
z записывается так:
ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 1 35
матрицами размером 4 × 4 . Тогда трехмерная точка ( x, y, z ) записывается в
однородных координатах как (wx, wy , wz , w ) , где w ≠ 0 . Для получения
декартовых координат надо первые три однородные координаты разделить на
w . Два однородных вектора описывают одну декартову точку в трехмерном
пространстве, если H 1 = cH 2 , где c = Const ≠ 0 и H 1 , H 2 - векторы,
записанные в однородных координатах.
Матрицы преобразований будем записывать в правосторонней системе
координат. При этом положительный поворот определяется следующим
образом. Если смотреть из положительной части оси вращения (например,
оси z ) в направлении начала координат, то поворот на 90 o против часовой
стрелки будет переводить одну положительную полуось в другую (ось x в y ,
в соответствии с правилом циклической перестановки).
Заметим, что на практике удобнее применять левостороннюю систему
координат, так как в этом случае удобнее интерпретировать тот факт, что
точки с большими значениями z находятся дальше от наблюдателя.
Запишем теперь матрицу трехмерного переноса. Аналогично
двумерному случаю.
⎡ 1 0 0 0⎤
⎢ 0 1 0 0⎥
(
T Dx , D y , Dz = ) ⎢
⎢ 0 0 1 0⎥
⎥ , при этом
⎢ ⎥
⎣ D x D y D z 1⎦
( ) [
[x, y, z,1] ⋅ T D x , D y , D z = x + D x , y + D y , z + D z ,1 . ]
Операция масштабирования:
⎡S 0 0 0⎤
⎢0 S y 0 0⎥
(
S Sx , Sy , Sz ) =⎢
⎢0 0 S z 0⎥
⎥
⎢ ⎥
⎣0 0 0 1⎦
[x, y, z,1] ⋅ S (S x , S y , S z ) [ ]
= S x ⋅ x, S y ⋅ y, S z ⋅ z ,1
Перейдем к операции поворота, с ней в трехмерном случае придется
разбираться чуть побольше чем в двумерном. Так как при двумерном
повороте в плоскости xy координаты z остаются неизменными, то поворот
вокруг оси z записывается так:
Страницы
- « первая
- ‹ предыдущая
- …
- 33
- 34
- 35
- 36
- 37
- …
- следующая ›
- последняя »
