Методическое пособие по курсу "Интерактивные графические системы". Найханов В.В - 18 стр.

UptoLike

y ) поворачивается на угол ϕ по часовой стрелке относительно какой-либо
точки М ( x
М
, y
М
) .
Уравнение преобразования вращения применяется только для
поворота точек относительно начала координат, поэтому вначале
необходимо сдвинуть точку ( x , y ) так, чтобы точка М ( x
М
, y
М
) стала
началом координат
[ x` y` 1 ] = [ x y 1 ]
1
010
001
MM
yx
,
затем произвести поворот точки (x`,y`) на угол
ϕ:
[ x`` y`` 1 ] = [ x` y` 1 ]
100
0cossin
0sincos
ϕϕ
ϕϕ
.
Возвратим начало системы координат в исходное положение, т.е.
произведем обратный сдвиг:
[ x``` y``` 1 ] = [ x`` y`` 1 ]
1
010
001
MM
yx
.
Для конкретных значений x
М
, y
М
и ϕ можно эту последовательность
преобразований представить как одно преобразование (совмещенное). При
совмещении не должен нарушаться порядок выполнения преобразований :
[ x`` y`` 1 ] = [ x y 1 ]
1
010
001
MM
yx
100
0cossin
0sincos
ϕϕ
ϕϕ
1
010
001
MM
yx
.
Эту формулу можно использовать для вращения фигуры вокруг любой
точки. Применение совмещенного преобразования обеспечивает
компактную запись и уменьшает объем вычислений.
Трехмерные преобразования вращения сложнее двумерных
преобразований. Здесь необходимо задать направление и расположение оси
вращения . Вначале рассмотрим вращение вокруг координатных осей.
Вращение вокруг координатной оси X, проходящей через точку
(0,0,0), выражается матрицей:
[ x` y` z` 1 ] = [ x y z 1 ]
1000
0cossin0
0sincos0
0001
ϕϕ
ϕϕ
.
Здесь угол поворота
ϕ берется по часовой стрелке вокруг начала координат ,
если смотреть в направлении начала координат из точки, расположенной на
положительной полуоси X .
Вращение вокруг координатной оси Y выражается матрицей:
y ) поворачивается на угол ϕ по часовой стрелке относительно какой-либо
точки М ( xМ , yМ) .
     Уравнение преобразования вращения применяется только для
поворота точек относительно начала координат, поэтому вначале
необходимо сдвинуть точку ( x , y ) так, чтобы точка М ( xМ , yМ) стала
началом координат
                                                       ⎡ 1            0        0⎤
                              [ x` y` 1 ] = [ x y 1 ] ⎢⎢ 0            1        0⎥⎥ ,
                                                       ⎢⎣− x M      − yM       1⎥⎦
затем произвести поворот точки (x`,y`) на угол ϕ:
                                                       ⎡cos ϕ        − sin ϕ        0⎤
                          [ x`` y`` 1 ] = [ x` y` 1 ] ⎢⎢ sin ϕ       cos ϕ          0⎥⎥ .
                                                       ⎢⎣ 0            0            1⎥⎦
Возвратим начало системы координат в исходное положение, т.е.
произведем обратный сдвиг:
                                                        ⎡1           0      0⎤
                       [ x``` y``` 1 ] = [ x`` y`` 1 ] ⎢⎢ 0          1      0⎥⎥ .
                                                        ⎢⎣ x M      yM      1⎥⎦
Для конкретных значений xМ , yМ и ϕ можно эту последовательность
преобразований представить как одно преобразование (совмещенное). При
совмещении не должен нарушаться порядок выполнения преобразований :
                                ⎡ 1         0     0⎤    ⎡cos ϕ    − sin ϕ    0⎤     ⎡1         0    0⎤
     [ x`` y`` 1 ] = [ x y 1 ] ⎢⎢ 0         1     0⎥⎥   ⎢ sin ϕ
                                                        ⎢         cos ϕ      0⎥⎥    ⎢0
                                                                                    ⎢          1    0⎥⎥ .
                                ⎢⎣− x M   − yM    1⎥⎦   ⎢⎣ 0        0        1⎥⎦    ⎢⎣ x M     yM   1⎥⎦
Эту формулу можно использовать для вращения фигуры вокруг любой
точки.     Применение    совмещенного    преобразования   обеспечивает
компактную запись и уменьшает объем вычислений.
       Трехмерные преобразования вращения сложнее двумерных
преобразований. Здесь необходимо задать направление и расположение оси
вращения . Вначале рассмотрим вращение вокруг координатных осей.
       Вращение вокруг координатной оси X, проходящей через точку
(0,0,0), выражается матрицей:
                                                    ⎡1   0                  0          0⎤
                                                    ⎢0 cos ϕ             − sin ϕ       0⎥⎥
                       [ x` y` z` 1 ] = [ x y z 1 ] ⎢                                      .
                                                    ⎢0 sin ϕ              cos ϕ        0⎥
                                                    ⎢                                    ⎥
                                                    ⎣0   0                  0          1⎦
Здесь угол поворота ϕ берется по часовой стрелке вокруг начала координат ,
если смотреть в направлении начала координат из точки, расположенной на
положительной полуоси X .
      Вращение вокруг координатной оси Y выражается матрицей: