Реферат: Задачи графических преобразований в приложениях моделирования с использованием ЭВМ
X
Рис. 10
Решение сформулированной задачи разбивается на несколько шагов. Опишем последовательно каждый из них.
1-й шаг. Перенос на вектор –А (-a, -b, -c) при помощи матрицы
1 0 0 0
|
|
0 0 1 0
-a -b -c 1
В результате этого преноса мы добиваемся того, чтобы прямая L проходила через начало координат.
2-й шаг. Совмещение оси аппликатс прямой L двумя поворотами вокруг оси абсцисс и оси ординат.
1-й поворот – вокруг оси абсцисс на угол y (подлежащий определению). Чтобы найти этот угол, рассмотрим ортогональную проекцию L’ исходной прямой L на плоскость X = 0 (рис. 11).
|
|
Y
Y
0
Рис. 11
Направляющий вектор прямой L’ определяется просто – он равен
(0, m, n).
Отсюда сразу же вытекает, что
cos y = n / d, sin y = m / d, (4.10)
где
d = m2 + n2 (4.11)
Соответствующая матрица вращения имеет следующий вид:
1 0 0 0
|
|
0 -m/d n/d 0
0 0 0 1
Под действием преобразования, описываемого этой матрицей, координаты вектора (l, m, n) изменятся. Подсчитав их, в результате получим
(l, m, n, 1)[ Rx ] = (l , 0, d, 1). (4.13)
2-й поворот вокруг оси оси ординат на угол q, определяемый соотношениями
сos q = l, sin q = -d (4.14)
Cоответствующая матрица вращения записывается в следующем виде:
l 0 d 0
|
|
-d 0 l 0
0 0 0 1
3-й шаг. Вращение вокруг прямой L на заданный угол j.
Так ка теперь прямая L совпадает с осью аппликат, то соответствующая матрица имеет следующий вид:
|
-sin
|
0 0 1 0
0 0 0 1
4-й шаг. Поворот вокруг оси ординат на угол -q.
5-й шаг. Поворот вокруг оси абсцисс на угол -y.
Однако вращение в пространстве некоммутативно. Поэтому порядок, в котором проводятся вращения, является весьма существенным.