ВУЗ:
Составители:
Основы компьютерной графики для программистов 30
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
[]
[]
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
−⋅=
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. С вычислительной точки зрения гораздо проще и быстрее применять
матрицу уже готового преобразования вместо того, чтобы применять их
последовательно одну за другой. К точке более эффективно применять одно
результирующее преобразование, чем ряд преобразований
друг за другом.
Для примера рассмотрим задачу поворота объекта на плоскости относительно
некоторой произвольной точки
0
p . Пока мы умеем поворачивать объекты только
вокруг начала координат. Но можно представить эту задачу как последовательность
шагов, на каждом из которых будет применяться только элементарная операция:
перенос, масштабирование или вращение.
Вот эта последовательность элементарных преобразований (рис. 27):
1.
Перенос, при котором точка
0
p переходит в начало координат.
2.
Поворот на заданный угол.
Основы компьютерной графики для программистов 30
____________________________________________________________________________________________________________________
⎡ 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. С вычислительной точки зрения гораздо проще и быстрее применять
матрицу уже готового преобразования вместо того, чтобы применять их
последовательно одну за другой. К точке более эффективно применять одно
результирующее преобразование, чем ряд преобразований друг за другом.
Для примера рассмотрим задачу поворота объекта на плоскости относительно
некоторой произвольной точки p 0 . Пока мы умеем поворачивать объекты только
вокруг начала координат. Но можно представить эту задачу как последовательность
шагов, на каждом из которых будет применяться только элементарная операция:
перенос, масштабирование или вращение.
Вот эта последовательность элементарных преобразований (рис. 27):
1. Перенос, при котором точка p 0 переходит в начало координат.
2. Поворот на заданный угол.
http://www.ksu.ru/persons/9134.ru.html
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »
