Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 6.doc
Скачиваний:
33
Добавлен:
11.04.2015
Размер:
299.52 Кб
Скачать

Композиция двухмерных преобразований

Рассмотрим операцию масштабирования относительно некоторой точки P1. Поскольку нам известен один процесс преобразования относительно начала координат, то процесс масштабирования относительно некоторой точки – это процесс, в общем случае, включает три процедуры:

  • перенос, при котором точка P1. перемещается в начало координат;

  • масштабирование;

  • перенос, при котором точка P1. из начала координат возвращается в исходное положение.

Первый перенос осуществляется на (-X1Y1), в то время как последний на(X1 Y1), результаты существенно отличаются от того, если осуществлялось только масштабирование. Результирующее преобразование имеет вид:

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

В случае операции отражения относительно некоторой точки с координатами x, y процедура преобразования имеет вид

Рассмотрим процедуру отражения относительно оси, не проходящей через начало координат. Если ось симметрии наклонена к осиOXпод угломaи пересекает ее в точке с координатойx = d, то это преобразование выполняется как последовательность трех преобразований (рис. 3.28):

  • переноса оси симметрии параллельно самой себе в начало координат;

  • выполнение преобразования отражения относительно оси, проходящей через начало координат;

  • возврат оси в исходное положение.

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

T(-x1 –y1)*S(Sx1 Sy1)* R(j)*T(x1 y1)

Вывод.Разбивая необходимое преобразование на этапы, поддерживаемое матрицами преобразования R, T, M, S, можно построить матрицу любого аффинного преобразования по его геометрическому описанию.

При этом возникает вопрос следующего порядка, если известно что М1и M2 представляют собой перенос, масштабирование, поворот, то при каких условияхМ1и М2, будут сохранять коммутативность? В общем случае перемножение матриц не подчиняется коммутативному закону. Но в следующих частных случаях этот закон выполняется:

M1

M2

Перенос

Перенос

Масштабирование

Масштабирование

Поворот

Поворот

Масштабирование (при Sx = Sy)

Поворот

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

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

Перемещение

Отрезка относительно начала координат

Перемещение

Отрезка относительно точки

Матрица преобразования

Матрица преобразования

Масштабирование

Относительно начала координат

Масштабирование

Относительно точки

Поворот

относительно начала координат

Поворот

относительно произвольной точки

где с=1-cosj

Отражение

относительно начала координат

Отражение

относительно произвольной точки на плоскости