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

UptoLike

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

ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 1 33
()
()
=
=
100
00
00
100
00
00
100
00
00
,,
'
'
'
'
''
y
y
x
x
y
x
y
x
yx
yx
SS
SS
S
S
S
S
SSSSSS
Для операции поворота матричный вид будет такой:
[]
[]
=
100
0
0
1,,1,,
''
αα
α
α
CosSin
SinCos
yxyx
Определим матрицу поворота
()
=
100
0
0
αα
α
α
α
CosSin
SinCos
R
Аналогично двум предыдущим случаям, покажем, что матрица
поворота остается таковой при последовательных поворотах.
()()
=
=
100
0
0
100
0
0
ββ
β
β
αα
α
α
βα
CosSin
SinCos
CosSin
SinCos
RR
() ()
()()
++
+
+
=
100
0
0
βαβα
β
α
β
α
CosSin
SinCos
Таким образом, доказано, что два, а значит и любое количество
последовательных поворотов можно записать в виде одной матрицы
суммарного поворота. Также легко заметить что любая последовательность
операций, включающая в себя перенос, масштабирование и вращение в
однородных координатах, может быть представлена одной матрицей, которая
является произведением матриц данных операций.
Рассмотрим, каким образом
с помощью композиции матричных
преобразований можно получить одно общее результирующее
преобразование. Для этого будем использовать матрицы T, S и R. С
вычислительной точки зрения гораздо проще и быстрее применять матрицу
уже готового преобразования вместо того, чтобы применять их
ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 1                                                            33




                                      ⎡S x   0    0⎤ ⎡ S ' x    0    0⎤ ⎡ S x ⋅ S ' x       0        0⎤
       (        ) (
     S Sx , S y ⋅ S S 'x , S ' y   )
                                   ⋅= ⎢ 0
                                      ⎢
                                             Sy
                                                    ⎥
                                                       ⎢
                                                  0⎥ ⎢ 0       S'y
                                                                       ⎥ ⎢
                                                                     0⎥ = ⎢ 0            Sy ⋅ S'y    0⎥
                                                                                                       ⎥

                                      ⎢⎣ 0   0    1⎥⎦ ⎢⎣ 0      0    1⎥⎦ ⎢⎣ 0               0        1⎥⎦


     Для операции поворота матричный вид будет такой:
                                            ⎡ Cosα Sinα 0⎤
                       '   '
                             [          ]
                      x , y ,1 = [x, y,1] ⋅ ⎢− Sinα Cosα 0⎥
                                            ⎢              ⎥
                                            ⎢⎣ 0     0   1⎥⎦
                                         ⎡ Cosα Sinα 0⎤
     Определим матрицу поворота R(α ) = ⎢− Sinα Cosα 0⎥
                                         ⎢                ⎥
                                         ⎢⎣ 0       0   1⎥⎦
     Аналогично двум предыдущим случаям, покажем,                                  что матрица
поворота остается таковой при последовательных поворотах.
                            ⎡ Cosα Sinα 0⎤ ⎡ Cosβ Sinβ                            0⎤
               R(α )R(β ) = ⎢− Sinα Cosα 0⎥ ⎢− Sinβ Cosβ                          0⎥ =
                            ⎢                ⎥⎢                                     ⎥
                            ⎢⎣ 0     0     1⎥⎦ ⎢⎣ 0   0                           1⎥⎦
        ⎡ Cos (α + β ) Sin(α + β ) 0⎤
      = ⎢− Sin(α + β ) Cos (α + β ) 0⎥
        ⎢                             ⎥
        ⎢⎣     0            0       1⎥⎦
      Таким образом, доказано, что два, а значит и любое количество
последовательных поворотов можно записать в виде одной матрицы
суммарного поворота. Также легко заметить что любая последовательность
операций, включающая в себя перенос, масштабирование и вращение в
однородных координатах, может быть представлена одной матрицей, которая
является произведением матриц данных операций.
      Рассмотрим, каким образом с помощью композиции матричных
преобразований       можно    получить  одно   общее   результирующее
преобразование. Для этого будем использовать матрицы T, S и R. С
вычислительной точки зрения гораздо проще и быстрее применять матрицу
уже готового преобразования вместо того, чтобы применять их