Основы компьютерной графики: Часть 1. Математический аппарат компьютерной графики. Казанцев А.В. - 35 стр.

UptoLike

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

ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 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 записывается так: