1.10. Поворот вокруг произвольной точки

Ранее мы рассматривали вращение, совершаемое вокруг начала координат. Однородные координаты предусматривают механизм выполнения поворотов вокруг точек, отличных от начала координат. В общем случае поворот вокруг произвольной точки может быть реализован посредством ее перемещения в начало координат, выполнения требуемого поворота и последующего перемещения результата обратно в исходный центр вращения. Таким образом, поворот вектора [x y 1] вокруг точки m, n на произвольный угол можно осуществить следующим образом:

 

           
[x*  y*  1] = [x  y  1]    1  0  0 
  0  1  0 
 -m -n 1 
    cosθ  sinθ  0 
 -sinθ  cosθ  0 
  0       0       1
    1  0  0 
  0  1  0 
  m  n 1 
           

Выполняя действия над двумя внутренними матрицами, можно записать

 

   
[x*  y*  1] = [x  y  1]              cosθ                               sinθ                   0 
           -sinθ                               cosθ                   0 
 -m(cosθ - 1) + n sinθ   -n(cosθ - 1) - m sinθ     1
   

 

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