Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




Геометрические преобразования, реализуемые матрицей 2х2


Умножим вектор-строку || х у ||, определяющую точку Р,на матрицу преобразования 2х2 общего вида: т.е. исходная точка P(х, у) преобразуется в точку P*(х*, у*), где х*=(ах+су), а у*=(bх+dy).

Проведем анализ этого преобразования, рассмотрев частные случаи:

b,c = 0
a, d > 0 Масштабирование (ax dy)
a, d > 1 Масштаб увеличения
0< a, d <1 Масштаб уменьшения
a= d > 0 Пропорциональное масштабирование по осям
a≠ d > 0 Непропорциональное масштабирование по осям
a, d < 0 Отображение с масштабированием
a, d = -1 Отображение относительно начала координат
a=-1, d=1 Отображение относительно оси Y
a=1, d=-1 Отображение относительно оси X
a= d = 1 Пустой оператор
 
а= d = 1
b, c ≠ 0 Сдвиг относительно осей X и Y
b=0, c ≠ 0 Сдвиг относительно оси Y
b≠0, c=0 Сдвиг относительно оси X
a= d = cos α; b=sin α; c=-sin α Поворот на угол α относит. начала координат

 

Представление прямых линий

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

Пусть имеется прямая линия, заданная вектором положения || 0 1 || точки А и вектором положения || 2 3 || точки В, и задана матрица преобразования

, которая осуществляет операцию сдвига точки.

Используя умножение матрицы преобразования на векторы положения точек А и В, получим новые преобразованные векторы А* и В*:

.

Таким образом, элементами А* являются х* = 3 и y*= 1, а для В* - x*=11, y*=7. Более компактно прямая линия, проходящая через точки А и В, может быть представлена матрицей вида , гдепервая строка является вектором положения точки А, а вторая строка - вектором положения точки В. После умножения P на Т получим . Компоненты матрицы P* представляют собой преобразованные векторы положения точек А* и В *. Легко видеть, что операция сдвига увеличила длину линии и изменила ее положение. В рассмотренном примере мы трансформировали прямую линию у= х+1 между точками А и В в прямую линию у* = (3/4)х* - (5/4) между точками А* и В*. Выполненная операция справедлива для любой исходной линии и обеспечивает взаимно однозначное соответствие между точками исходной линии и точками на преобразованной линии. Это означает, что положение любой прямой линии может быть преобразовано в любое новое положение простым преобразованием ее граничных точек с последующим проведении линии между преобразованными точками.

Таким образом, каждая точка прямой взаимно одназначно преобразуется с помощью процедуры перемножения матриц в некоторую другую прямую в той же системе координат, а параллельные прямые с помощью тех же операций преобразуются в параллельные прямые. Следовательно, любую фигуру с помощью операции перемножения матриц можно преобразовать в изоморфную фигуру в той же системе координат относительно ее начала.

Однородные координаты (ОК) и

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

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

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

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

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

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

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

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

 

Так как третья дополнительная координата (обозначим её в общем случае h) равна 1, то выполнено преобразование в пространстве, ограниченном плоскостью h=1. Если h¹1, то преобразованные обычные координаты получаются нормализацией ОК, т.е. х*=Х/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 – управляет полным изменением масштаба.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...