1.4. Поворот

Рассмотрим треугольник ABC (рис.1.2) и с помощью следующего преобразования повернем его на 90° против часовой стрелки относительно начала координат

 

   
[T] =   0   1
-1   0 
   

 

Если использовать матрицу (3 х 2), состоящую из координат x и y вершин треугольника, то можно записать

 

                 
3  -1 
4   1 
2   1
  
     
 0   1 
-1   0
     
 =  3  -1 
4   1 
2   1
                 

 

 

что является координатами результирующего треугольника A*B*C*. Поворот нв 180° относительно начала координат достигается путем следующего преобразования

 

   
[T] =   -1   0
  0  -1 
   

а на 270° относительно начала координат - преобразованием

 

   
[T] =    0  -1
 1   0 
   

Разумеется, что матрица тождественного преобразования

 

   
[T] =    1   0
 0   1 
   

соответствует повороту вокруг начала координат на 0° или на 360°.

Как осуществить поворот вокруг точки начала координат на произвольный угол θ? Для ответа на этот вопрос рассмотрим вектор положения от начала координат до точки Р (рис. 1.3). Обозначим r - длину вектора, а φ - угол между вектором и осью х. Вектор положения поворачивается вокруг начала координат на угол θ и попадает в точку Р*. Записав векторы положений для Р и Р*, получаем:

 

Р = [х   у] = [r cosφ   r sinφ]

и

Р* = [x*   у*] = [r соs(θ + φ)   r sin(θ + φ].

Используя формулу для cos суммы углов, перепишем выражение для Р* следующим образом

 

Р* = [x*   у*] = [r(cosφcosθ - sinφsinθ)   r(соsφsinθ + sinφcosθ)].


Используя определения х и у, можно переписать Р* как

 

Р* = [x*   у*] = [x cosθ - y sinθ   x sinθ + y cosθ].

 

Таким образом, преобразованная точка имеет координаты

 

x* = x cosθ - y sinθ
y* = x sinθ + y cosθ.

Или в матричном виде

 

   
[X*] = [X][T] = [x*   y*] = [x   y]   cosθ   sinθ 
-sinθ   cosθ
   

Итак, преобразование поворота вокруг точки начала координат на произвольный угол θ задается матрицей

 

   
[T] =    cosθ   sinθ 
-sinθ   cosθ
   

 

Назад
Компьютерная графика © 2014 ОСУ ИК Вход