Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции КГ.doc
Скачиваний:
15
Добавлен:
17.11.2019
Размер:
6.81 Mб
Скачать

5.Аффинные преобразования на плоскости

Перейдем теперь к рассмотрению вопросов обработки векторных изображений. Как мы уже знаем, векторное изображение хранится в виде набора координат своих базовых элементов – отрезков и дуг. Над векторными изображениями можно выполнять так называемые аффинные преобразования – перенос, поворот и масштабирование. При аффинных преобразованиях сохраняются углы между элементами векторного изображения.

Методы выполнения аффинных преобразований хорошо известны из аналитической геометрии. Например, рассмотрим перенос (трансляцию) и поворот. Пусть на плоскости имеется двухмерная система координат XOY. В этой системе точка М имеет координаты х, у. Пусть на той же плоскости имеется еще одна система координат. Тогда в этой новой системе та же точка М будет иметь в общем случае иные координаты х', y'. Отметим, что одна система координат переводится в другую при перемещении ее центра вдоль отрезка, соединяющего начала координат обоих систем. Тогда переход от одной прямоугольной декартовой системы координат к другой описывается формулами:

(0)

Здесь , , , , , - произвольные числа.

Данное преобразование показано на Рис. 5 .29.

Рис. 5.29 - Общий случай перехода от одной координатной системы к другой.

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

x'=x+dx

y'=y+dy

(0)

Это равносильно перемещению точки вдоль отрезка (х, у) - (dx, dy).

Пусть точку М(х,у) нужно повернуть вокруг начала координат на угол . Новые координаты точки после поворота определяются по формулам (Рис. 5 .30):

(0)

Рис. 5.30 - Поворот системы координат.

Как видно из этих несложных примеров, для разных преобразований используются совершенно разные методики. Однако существует единый универсальный подход, основанный на использовании матричного исчисления. Именно он и используется в системах векторной графики.

5.1.Понятие однородных координат

Матрицы применяются для описания элементарных операций над геометрическими примитивами. Для этого вводится понятие однородных координат точки на плоскости.

На плоскости точка в однородных координатах описывается не двумя, а тремя числами. Пусть на плоскости есть точка М с координатами х,у. Тогда ее однородными координатами называются три одновременно не равных нулю числа х1, х2, х3 таких, что .

В машинной графике точке с координатами х, у на плоскости ставится в соответствие точка с координатами х, у, 1 в пространстве (Рис. 5 .31). Фактически точка х, у проектируется на плоскость, параллельную координатной и отстоящей от нее на расстояние, равное единице.

Рис. 5.31 - Однородные координаты точки.

В проективной геометрии однородные координаты обычно записываются как х12:1. Их также удобно представить в виде hx1:hx2:h, где h есть Z - координата проективной плоскости.

Основное преимущество однородных координат - возможность замены операций с вещественными числами на операции с целыми числами. Такая замена является абсолютно необходимой, поскольку целочисленная арифметика на компьютере выполняется в десятки раз быстрее, чем арифметика с плавающей точкой. Например, точка имеет однородные координаты 0,5:0.1:2.5 при h=1. Просто переместим проективную плоскость повыше, приняв h=10. Тогда координаты примут вид 5:1:2.5. Третья координата при выводе на экран не используется, а первые две стали целыми числами.

Рассмотрим матричную запись аффинных преобразований на плоскости (Табл. 5 .3).

Табл. 5.3

ПРЕОБРАЗОВАНИЕ

МАТРИЧНАЯ ЗАПИСЬ

Перенос на TX, TY

Поворот на угол

Масштабирование с коэффициентами по осям SX, SY

Здесь X, Y, h - однородные координаты произвольной точке в исходной системе координат.

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