- •6. Модели объектов. Плоские и пространственные линейные преобразования
- •6.1. Модели (структуры данных) графических объектов
- •6.2. Задание плоских и пространственных линейных преобразований при помощи уравнений связи
- •6.3. Однородные координаты. Матричные представления линейных преобразований
- •6.4. Составные линейные преобразования
- •6.5. Линейные преобразования каркасных моделей
6.4. Составные линейные преобразования
Любое линейное преобразование можно представить в виде последовательного выполнения (композиции) элемен-тарных линейных преобразований. Допустим, преобра-зование Т состоит в последовательном выполнении элемен-тарных преобразований Т1, Т2, Т3. В этом случае итоговая матрица преобразования Т равна произведению:
128
МТ = МТ3∙ МТ2∙ МТ1 .
В общем случае при Т = Т1∙Т2∙…∙Тn,
МТ = МТn∙ МТ(n-1)∙…∙ МТ1 .
Для того, чтобы найти матрицу преобразования, обратного к составному Т = Т1∙Т2∙…∙Тn (такую, что МТ-1∙МТ = Е), необходимо МТ последовательно умножить слева на М –1Тn∙ М –1Т(n-1)∙…∙М -1Т1. При этом получим:
М -1Т = М -1Т1∙М -1Т2∙…∙М -1Тn .
Пример. Необходимо построить плоское линейное преоб-разование Т, осуществляющее поворот точек вокруг цент-ральной точки Р(x0 , y0 ) на заданный угол φ (Рис.6.5).
Рис.6.5
129
Решение.
Данное преобразование можно представить в виде компози-ции элементарных следующим образом:
1) сдвиг всех точек плоскости на вектор (-x0,-y0) (при этом Р0 переместится в начало координат);
2) поворот на угол φ вокруг оси z;
3) сдвиг на вектор (x0, y0), при которомР0 займет свое прежнее положение.
Найдем матрицу Т:
МТ = Мсд(x0, y0) ∙Мпz(φ)∙ Мсд (-x0, -y0) =
Данный пример иллюстрирует некоммутативность умно-жения матриц. При φ≠0
МТ = Мсд (-x0,- y0) Мпz(φ)∙Мсд(x0, y0) ≠ Мсд(-x0 ,- y0)∙Мсд(x0, y0)∙Мпz(φ) = Мпz(φ) .
Задачи.
Выразить через матрицы элементарных линейных преобразований прямые и обратные матрицы следующих составных преобразований:
1) поворот на угол 90° вокруг оси, проходящей через точки с координатами (100, 200, 300) и (200, 200, 300);
2) поворот на угол 60° вокруг оси y точкиР0*, симмет-ричной относительно плоскости 0yz исходнойР0 (x0 ,y0 ,z0 );
3) увеличение в 0,5 раза всех координат точкиР0 (x0 ,y0 ,z0 ); предварительно повернутой вокруг оси x на угол 30° и вокруг z - на 45°;
130
4) сдвиг координат точкиР0 (x0 , y0 , z0 ), симметрично отра-
женной относительно начала координат 0, при котором точка (1, 2, 3) переходит в точку (3, 2, 1);
5) поворот на угол 120° вокруг оси, проходящей через точки с координатами (10, 20, 30) и (10, 50, 30).
6.5. Линейные преобразования каркасных моделей
Каркасные модели реальных объектов представляют собой наборы вершин и векторов, соединяющих их. При выполнении линейных преобразований объектов изме-няются только координаты точек (геометрическая инфор-мация об объекте). Порядок же соединения точек, опреде-ляющий топологию объекта, остается прежним. Поэтому, с точки зрения рационального выполнения линейных преоб-разований, каркасную модель объекта необходимо раздель-но задавать при помощи:
1) геометрической информации – в виде списка однородных координат точек-вершин Р ={Рi(xi,yi,zi,1), i=0,1,…,n} , где (n+1) – общее число точек, необходимых для задания фор-мы объекта и
2)топологической информации – в виде списка пар номеров точекL = {I1, I2 , … , I m }, где I j = (j 0 , j 1 ) - номера в спискеР конечных точек линии j, (m+1) - общее число линий-векторов.
При выполнении линейного преобразования из-за изменения положения точек Pi в пространстве матричным преобразованиям подвергается только первый список Р их однородных координат. Второй списокL, отражающий топологические связи вершин внутри объекта, остается неизменным.
131