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

UptoLike

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

Основы компьютерной графики для программистов 29
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
- это в точности повторяет формулы (1), выведенные для центральной перспективы.
Теперь точки двумерного пространства будут описываться трехэлементными вектор-
строками, поэтому и матрицы преобразований, на которые будет умножаться вектор
точки, будут иметь размеры 3
×3. Запишем матричное преобразование операции
переноса для однородных координат:
[]
[]
=
1
010
001
1,,1,,
''
yx
DD
yxyx
или
(
)
yx
DDTpp ,
'
=
, где
()
=
1
010
001
,
yx
yx
DD
DDT
.
При последовательном переносе точки
p
в точку
'
p и затем в точку
''
p компоненты
суммарного вектора переноса являются суммами соответствующих компонент
последовательных векторов переноса. Рассмотрим, каковы будут элементы матрицы
суммарного переноса. Пусть
(
)
yx
DDTpp ,
'
= ,
(
)
yx
DDTpp
'''''
,= . Подставив первое
уравнение во второе получаем
(
)
(
)
yx
yx
DDTDDTpp
''''
,, = . Матричное произведение
т.е. суммарный перенос равен произведению соответствующих матриц переноса.
++
=
1
010
001
1
010
001
1
010
001
''''
y
y
x
x
yx
yx
DDDDDDDD
Запишем матричный вид операции масштабирования.
[]
[]
=
100
00
00
1,,1,,
''
y
x
S
S
yxyx
.
Определим матрицу масштабирования
()
=
100
00
00
,
y
x
yx
S
S
SSS
Так же, как последовательные переносы являются аддитивными, покажем, что
последовательные масштабирования будут мультипликативными.
()
()
=
=
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
Для операции поворота матричный вид будет такой:
Основы компьютерной графики для программистов                                                                                                   29
____________________________________________________________________________________________________________________



- это в точности повторяет формулы (1), выведенные для центральной перспективы.
Теперь точки двумерного пространства будут описываться трехэлементными вектор-
строками, поэтому и матрицы преобразований, на которые будет умножаться вектор
точки, будут иметь размеры 3×3. Запишем матричное преобразование операции
переноса для однородных координат:
                                                                        ⎡1                  0        0⎤
                                                 [             ]        ⎢
                                                   x , y ,1 = [x, y,1]⋅ ⎢ 0
                                                      '    '
                                                                                           1         0⎥
                                                                                                       ⎥
                                                                        ⎢ Dx               Dy        1⎥⎦
                                                                        ⎣
                                                                                 ⎡1                                 0     0⎤
                                  или p = p ⋅ T (Dx , D y ), где T (Dx , D y ) = ⎢ 0
                                         '                                       ⎢                                          ⎥
                                                                                                                    1     0⎥ .
                                                                                 ⎢ Dx                               Dy    1⎥⎦
                                                                                 ⎣
                                                                                                '                                    ''
При последовательном переносе точки p в точку p и затем в точку p компоненты
суммарного вектора переноса являются             суммами соответствующих компонент
последовательных векторов переноса. Рассмотрим, каковы будут элементы матрицы
суммарного переноса. Пусть p ' = p ⋅ T (Dx , D y ), p '' = p ' ⋅ T D ' x , D ' y . Подставив первое         (              )
уравнение во второе получаем p '' = p ⋅ T (Dx , D y )⋅ T (D ' x , D ' y ). Матричное произведение
т.е. суммарный перенос равен произведению соответствующих матриц переноса.
                                 ⎡1      0      0⎤ ⎡ 1              0         0⎤ ⎡ 1                            0              0⎤
                                 ⎢                ⎥                                 ⎢                                            ⎥
                                 ⎢0      1      0⎥ ⎢⎢ 0             1         0⎥⎥ = ⎢ 0                   1                    0⎥
                                 ⎢ Dx    Dy     1⎥⎦ ⎢⎣ D ' x       D' y       1⎥⎦ ⎢⎣ Dx + D ' x        Dy + D ' y              1⎥⎦
                                 ⎣
Запишем матричный вид операции масштабирования.
                                                                           ⎡S x            0        0⎤
                                                  [   '    '
                                                               ]
                                                     x , y ,1 = [x, y,1]⋅ ⎢⎢ 0             Sy       0⎥⎥ .
                                                                           ⎢⎣ 0            0        1⎥⎦

                                                                                            ⎡S x                0        0⎤
Определим матрицу масштабирования S S x , S y                             (            )   =⎢0
                                                                                            ⎢
                                                                                                            Sy           0⎥
                                                                                                                           ⎥
                                                                                            ⎢⎣ 0                0        1⎥⎦
Так же, как последовательные переносы являются аддитивными, покажем, что
последовательные масштабирования будут мультипликативными.



                                            ⎡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⎥⎦


Для операции поворота матричный вид будет такой:



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