Пример 1. Построить матрицу вращения на угол <р вокруг прямой Ь, проходящей через точку А(а, Ъ, с) и имеющую направляющий вектор (I, т, п). Можно считать, что направляющий вектор прямой является единичным: Компьютерная графика. Полигональные модели

1 2 2 *

I + т + п = 1.

На рис. 9.1 схематично показано, матрицу какого преобразования требуется найти.

Решение сформулированной задачи разбивается на несколько шагов. Опишем последовательно каждый из них.

1-й шаг. Перенос на вектор -А(-а, -Ь, -с) при помощи матрицы

В результате этого переноса мы добиваемся того, чтобы прямая Ь проходила через начало координат.

Рис. 9. і

В результате этого переноса мы добиваемся того, чтобы прямая Ь проходила через начало координат.

2-й шаг. Совмещение оси аппликат с прямой Ь двумя поворотами вокруг оси абсцисс и оси ординат.

Первый поворот - вокруг оси абсцисс на угол у (подлежащий определению). Чтобы найти этот угол, рассмотрим ортогональную проекцию V исходной прямой Ь на плоскость X -0 (рис. 9.2).

Направляющий вектор прямой V определяется просто - он равен (0, т, л). Отсюда сразу же вытекает, что п т соз\|/ - - , злп у = - ,

Соответствующая матрица вращения имеет следующий вид"images/tmp32A8-98.png">

Под действием преобразования, описываемого этой матрицей, координаты вектора (/, /7?, п) изменятся. Подсчитав их, в результате получим

9. Преобразования в пространстве, проектирование

(/,1я,и,1)[^]= (/,0,^,1).

Второй поворот - вокруг оси ординат на угол 0, определяемый соотношениями соб# = 1,ът в - -а1. *

Соответствующая матрица вращения записывается в следующем виде:

-й шаг. Вращение вокруг прямой Ь на заданный угол <р,

3-й шаг. Вращение вокруг прямой Ь на заданный угол <р, Так как теперь прямая Ь совпадает с осью аппликат, то соответствующая матрица имеет следующий вид:

- й шаг. Поворот вокруг оси ординат на угол -В.

4- й шаг. Поворот вокруг оси ординат на угол -В.

5- й шаг. Поворот вокруг оси абсцисс на угол -у.

Замечание. Вращение в пространстве некоммутативно. Поэтому порядок, в котором проводятся вращения, является весьма существенным.

6- й шаг. Перенос на вектор А(а, Ъ, с).

Перемножив найденные матрицы в порядке их построения, получим следующую матрицу: Выпишем окончательный результат, считая для простоты, что ось вращения Ь проходит через начальную точку:


⇐ Предыдущая| |Следующая ⇒