Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GM_dlya_rassylki_v_gruppy_A_32_42_62_72.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
131.38 Кб
Скачать

Однородные координаты (ок) и однородное координатное преобразование (окп)

Для преобразования может потребоваться цепочка операций, которую надо выполнить только операцией умножения и которая некоммутативна (АВВА), т.е. порядок умножения является важным.

Матрица преобразования 2х2 не выполняет операцию переноса (не путать сдвиг с переносом), но если выразить точки в ОК, то все основные преобразования будут реализованы за счёт операции умножения.

Все пакеты графических программ работают с ОК, которые применяются внутри самого пакета и недоступны для программиста.

Реализуются однородные координаты введением третьей компоненты в векторы положения точек P и P*, т.е. в виде || х у 1 || и || х* у* 1 ||. Матрица преобразования после этого становится матрицей размера 3х2: .

Введение третьей строки необходимо для выполнения умножения. Тогда,

откуда следует, что константы m и n вызывают перенос х* и у* относительно х и у.

Так как матрица 3х2 не является квадратной, она не имеет обратной матрицы. Кроме того, исходная точка задана в ОК, а результат преобразования в обычных координатах. Устраним эти недостатки следующим приёмом: дополним матрицу преобразования 3Х2 до квадратной матрицы размером 3х3 следующим столбцом . Тогда

Так как третья дополнительная координата (обозначим её в общем случае h) равна 1, то выполнено преобразование в пространстве, ограниченном плоскостью h=1. Если h1, то преобразованные обычные координаты получаются нормализацией ОК, т.е. х*=Х/h и у*=У/h.

Если матрицу преобразования 3х2 дополнить третьим столбцом общего вида, то в результате ОКП получим

,

где h=рх+qy+1, т.е. это уравнение плоскости странстве ( рх+qy-Н+1=0).

Таким образом:

Представление двухмерного вектора трехмерным или в общем случае n-мерного вектора (n+1)-мерным вектором называется однородным координатным преобразованием, которое выполняется в (n+1)-мерном пространстве, а конечные результаты в n-мерном пространстве получаются с помощью обратного преобразования, т.е. деления координат на величину h.

Матрица преобразования общего вида размера 3х3 для двухмерных однородных координат может быть условно подразделена на четыре части:

.

a, b, c, d управляют изменением масштаба, сдвигом и вращением;

m и n управляют переносом;

p и q – управляют получением проекций;

элемент s – управляет полным изменением масштаба.

Базовые преобразования в ок для плоскости

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

М(Т) – матрица преобразования переноса на вектор Т(tx ty);

M(R()) – матрица поворота относительно начала координат на угол ;

М(Е) – матрица преобразования масштаба на вектор Е(еx еy);

М(Сдв) – матрица линейного преобразования (сдвига)

М(От) – матрица отображения

Тогда для плоскости основные преобразования в ОК исходной точки Р(х, у) в точку Р*(х*, у*) запишутся следующим образом:

Преобразование масштаба на вектор Е(ех еу):

P* = P М(Е), где М(Е) .

Преобразование переноса на вектор T(tх tу)

Р*=Р·М(Т), где М(Т) .

Преобразование поворота относительно начала координат на угол :

Р*= Р М(R()), где М(R()) .

Преобразование отображения на вектор От(отх оту)

Р*=Р·М (От ), где М(От) .

Преобразование сдвига на вектор Сд(сдх сду)

Р*=Р·М (Сд ), где М(Сд) .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]