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