домашняя библиотека
Поиск в библиотеке
Навигация по предметам
Последние добавленные новости
Реклама

Компьютерная графикаКомьютерная графика. Троицкий Д. И

5. системы координат, типы преобразований графической информации

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

5.1. Проблемы геометрического моделирования

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

Комьютерная графика. Троицкий Д. И

(2)

Здесь a, b, d, g, m, l - произвольные числа.

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

Комьютерная графика. Троицкий Д. И

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

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

x'=x+dx

y'=y+dy

(3)

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

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

Комьютерная графика. Троицкий Д. И

(4)

Комьютерная графика. Троицкий Д. И

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

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

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

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

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

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

Комьютерная графика. Троицкий Д. И

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

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

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

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

Табл. 5.1

Комьютерная графика. Троицкий Д. И

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

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

5.3. Геометрические операции над моделями

Современные системы компьютерной графики работают не только с плоскими изображениями, но и с объемными (трехмерными). Для выполнения преобразований в трех измерениях естественно распространить матричные операции и на трехмерные геометрические объекты. Для этого по аналогии с двухмерным случаем введем понятие однородных координат точки в пространстве. Заменим тройку чисел (x, y, z) четверкой (x, y, z, 1). В общем виде однородные координаты представляются в виде Комьютерная графика. Троицкий Д. И.

Комьютерная графика. Троицкий Д. И

Рис. 5.4 – Куб и гиперкуб.

Как представить себе смысл величины h? По аналогии с двухмерным случаем h есть расстояние от координатного пространства XYZ до проективной гиперплоскости, на которую это пространство проектируется. Размерность гиперплоскости равна четырем. Мысленно представить себе четырехмерный объект практически невозможно (Рис. 5.4). Например, каждой гранью четырехмерного гиперкуба является привычный нам трехмерный куб и т.д.

Зададим элементарные операции в пространстве в виде матриц.

Матрица вращения вокруг оси абсцисс на угол Комьютерная графика. Троицкий Д. И:

Комьютерная графика. Троицкий Д. И

Следует помнить, что матрица соответствует линейной системе уравнений координат точек.

Матрица вращения вокруг оси ординат на угол Комьютерная графика. Троицкий Д. И:

Комьютерная графика. Троицкий Д. И

Матрица вращения вокруг оси аппликат на угол Комьютерная графика. Троицкий Д. И:

Комьютерная графика. Троицкий Д. И

Очень важное свойство вращения в пространстве состоит в том, что оно некоммутативно. Коммутативностью называется независимость результата операции от порядка следования операндов. Например, для обычных чисел A×B=B×A. Для матриц же такое правило не соблюдается: при умножении матриц в общем случае A×B¹B×A. И действительно, результат вращения тела в пространстве зависит от последовательности выполнения вращений. Отметим, что вращение на плоскости вcегда коммутативно. Мы можем сначала повернуть объект на 15о, а затем на 30о, или наоборот – сначала на 30о, а затем на 15о – в обоих случаях тело окажется повернутым на 45о.

Матрица масштабирования с коэффициентами сжатия/растяжения Комьютерная графика. Троицкий Д. И вдоль оси абсцисс, Комьютерная графика. Троицкий Д. И - оси ординат, Комьютерная графика. Троицкий Д. И- оси аппликат:

Комьютерная графика. Троицкий Д. И

Для определения переноса объекта удобно воспользоваться вектором переноса с координатами Комьютерная графика. Троицкий Д. И, вдоль которого объект и перемещается в направлении вектора. Тогда можно записать следующую матрицу переноса:

Комьютерная графика. Троицкий Д. И

   
 
  • Добавлен: 25-01-2012, 00:22 | Просмотров: 12209

    support: admin@sdb.su