<<
>>

МОДЕЛИ ОТОБРАЖЕНИЯ ДАННЫХ

В компьютерной графике все, что относится к двумерному случаю, принято обозначать символом 2D (2-dimension). Допустим, на плоскости введена прямолинейная координатная система.

Тогда каждой точке М ставится в соответствие упорядочен-' ная пара чисел (х, у) ее координат (рис. 4.26).

Рис. 4.26. Точка в прямоугольной системе координат

Рис. 4.26. Точка в прямоугольной системе координат

Вводя на плоскости еще одну прямолинейную систему координат, мы ставим в соответствие той же точке М другую пару чисел — (х[*], у*).

Переход от одной прямолинейной координатной системы на плоскости к другой описывается следующими соотношениями: х* = ах +$у + X; у* = ух + 8у + р, где а, Р, у,Х, р — произвольные числа, связанные неравенством

В аффинных (от лат. affinis — родственный) преобразованиях* плоскости особую роль играют несколько важных частных случаев, имеющих хорошо прослеживаемые геометрические характеристики.

При исследовании геометрического смысла числовых коэффициентов в формулах, помеченный символом «*», для этих случаев удобно считать, что заданная система координат является прямоугольной декартовой.

Рассмотрим простейшие аффинные преобразования.

А.              Поворот (вокруг начальной точки на угол ф) (рис. 4.27) описывается формулами: х* = xcostp -ysintp, у* = xsinip + ycos(p.

Б.

Растяжение (сжатие) вдоль координатных осей можно задать так: х* - ах, у* = 6у, а gt; 0, 8 gt; 0.

Рис. 4.28. Растяжение вдоль осей

Рис. 4.28. Растяжение вдоль осей

Растяжение (сжатие) вдоль оси абсцисс обеспечивается при условии, что а gt;1 (а lt; 1). На рис. 4.28 а =5 gt; 1.

В.              Отражение (относительно оси абсцисс) (рис. 4.29) задается при помощи формул: х *= х; у * = - у.

Г. На рис. 4.30 вектор переноса ММ* имеет координаты X и р. Перенос обеспечивают соотношения: х* = х + X; у* = у + р.

Выбор этих четырех частных случаев определяется двумя обстоятельствами.

Рис. 4.30. Перенос точки

Рис. 4.30. Перенос точки

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

Как доказывается в курсе аналитической геометрии, любое преобразование вида (*) всегда можно представить как последовательное использование (суперпозицию) простейших преобразований вида А, Б, В и Г (или части этих преобразований).

Таким образом, справедливо следующее важное свойство аффинных преобразований плоскости: любое отображение вида (*) можно описать при помощи отображений, задаваемых формулами для случаев А, Б, В и Г.

Для эффективного использования этих формул в задачах компьютерной графики более удобной является их матричная запись. Матрицы, соответствующие случаям А, Б и В, строятся легко и имеют следующий вид:

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

Этого можно достичь, например, так: перейти к описанию произвольной точки на плоскости, не упорядоченной парой чисел, как это было сделано выше, а упорядоченной тройкой чисел.

Пусть М — произвольная точка на плоскости с координатами х и у, вытисненными относительно заданной прямолинейной координатной системы. Однородными координатами этой точки называется любая тройка одновременно не равных нулю чисел X], Х2 хз, связанных с заданными числами х и у следующими соотношениями:

При решении задач компьютерной графики однородные координаты обычно вводятся так: произвольной точке М (х, у) на плоскости ставится в соответствие точка М*(х, у, 1) в пространстве (рис. 4.31).

Заметим, что производная точка на прямой, соединяющей начало координат, точку О(0, 0, 0) с точкой М*(х, у, 1), может быть задана тройкой чисел вида (Ах, hy, А). Будем считать, что

Рис. 4.31. Преобразование координат точки на плоскости в однородные координаты

Рис. 4.31. Преобразование координат точки на плоскости в однородные координаты

zt

Вектор с координатами hx, hy, h является направляющим вектором прямой, соединяющей точки О(0, 0, 0) и М*(х, у, 1). Эта прямая пересекает плоскость г = 1 в точке (х, у, 1), которая однозначно определяет точку (х, у) координатной плоскости ху. Тем самым между произвольной точкой с координатами (х, у) и множеством троек чисел вида (hx, hy, A), h * 0, устанавливается (взаимно однозначное) соответствие, позволяющее считать числа hx, hy, h новыми координатами этой точки.

В проективной геометрии для однородных координат принято следующее обозначение: х : у : 1 или более общо: х\ : xi :хз (напомним, что здесь непременно требуется, чтобы числа х\, хг, хз одновременно в нуль не обращались).

Применение однородных координат оказывается удобным уже при решении простейших задач.

Рассмотрим, например, вопросы, связанные с изменением масштаба. Если устройство отображения работает только с целыми числами (или если необходимо работать только с целыми числами), то для произвольного значения h (например, h — 1) точку с однородными координатами (0,5 0,1 2,5) представить нельзя. Однако при разумном выборе h можно добиться того, чтобы координаты этой точки были целыми числами. В частности, при h = 10 для рассматриваемого примера имеем: (5 1 25).

Рассмотрим другой случай. Чтобы результаты преобразования не приводили к арифметическому переполнению, для точки с координатами (80 000 40 000 1000) можно взять, например, h = 0,001. В результате получим: (80 40 1).

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

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

В самом деле, считая h — \ сравним две записи: помеченную символом * и матричную:

Нетрудно заметить, что после перемножения выражений, стоящих в правой части последнего соотношения, мы получим обе формулы (*) и тождество 1 = 1.

Тем самым сравниваемые записи можно считать равносильными.

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

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

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

Выпишем соответствующие матрицы третьего порядка.

А. Матрица вращения (rotation):

Г. Матрица переноса (translation):

В. Матрица отражения (reflection):

Б. Матрица растяжения (сжатия) (dilatation):

Эти матрицы трактуются как составляющие общей матрицы, преобразующей исходную матрицу А графического объекта в матрицу А* преобразованного объекта.

Общая матрица преобразования при известных у, X, а, Р и ц получается перемножением матриц простейших преобразований V=[R\[D\\M\[T\.

Основные свойства матричных преобразований при переходе к трехмерному (3D) преобразованию сохраняются, однако более сложной становится операция вращения, требующая задания оси вращения. Напомним, что однородное представление трехмерной точки имеет вид: (hx, hy, hz, К).

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

Но далеко не всегда удается получить точное функциональное описание объекта. Чаще всего оказывается возможным вычислить только ряд точек графической фигуры. И тогда возникает задача плавного соединения (а не прямыми) этих точек для восстановления на экране изображения воспроизводимой фигуры. Эта задача в компьютерной графике решается с помощью геометрических сплайнов, или сплайн-функций [38].

<< | >>
Источник: Т.П. Барановская, В.И. Лойко, М.И. Семенов, А.И. Трубилин. Информационные системы и технологии в экономике: Учебник. - 2-е изд., доп. и перераб. /; Под ред. В.И. Лойко. - М.: Финансы и статистика,2005. - 416 с: ил. 2005

Еще по теме МОДЕЛИ ОТОБРАЖЕНИЯ ДАННЫХ: