- •Содержание
- •Предисловие
- •1.Основные понятия компьютерной графики
- •2.История компьютерной графики
- •3.Аппаратное обеспечение компьютерной графики
- •3.1.Устройства вывода. Экраны
- •3.2.Устройства вывода твердых копий
- •3.3.Устройства ввода. Сканеры
- •3.4.Устройства ввода. Цифровые фотоаппараты
- •3.5.Устройства координатного ввода
- •4.Свойства растровых изображений
- •4.1.Форматы хранения растровых изображений
- •4.2.Цветовые модели растровых изображений
- •5.Аффинные преобразования на плоскости
- •5.1.Понятие однородных координат
- •5.2.Однородные координаты и преобразования в пространстве
- •6.Моделирование поверхностей
- •7.Основы твердотельного моделирования
- •7.1.Методы построения 3d тел
- •7.2.Анализ твердотельных моделей
- •8.Визуализация 3d моделей
- •7Рис. 8.59 – Тор (а), параллельная (б) и центральная (в) проекции его линий очерка.
- •9.Программные технологии 3d графики
- •9.2.Интерфейс 3d api
- •9.3.Библиотека DirectX
- •9.4.Графический ускоритель
- •9.5.3D акселерация
- •10.Растровые алгоритмы
- •10.1.Удаление скрытых линий
- •11.Рендеринг
- •12.Компьютерная анимация
- •13.Предметный указатель
- •14.Список литературы
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 - Однородные координаты точки.
В проективной геометрии однородные координаты обычно записываются как х1:х2: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 - однородные координаты произвольной точке в исходной системе координат.
Таким образом, все преобразования сводятся к перемножению матрицы-столбца, содержащей однородные координаты точки, и соответствующей матрицы преобразования. Это позволяет резко упростить алгоритм обработки векторных изображений и повысить его быстродействие.