Системы построения графических изображений

Принципы объектно-ориентированного программирования. Графическая реализация 3-х мерных объектов, роль их свойств. Афинные преобразования на плоскости и в пространстве. Однородные координаты точки. Элементы произвольной матрицы аффинного преобразования.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 25.06.2009
Размер файла 26,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

12

Федеральное агентство по образованию

Государственное образовательное учреждение

Высшего профессионального образования

"Бирская государственная социально-педагогическая академия"

РЕФЕРАТ

"Системы построения графических изображений"

Выполнил: студент 3 курса

Саяпов А.Р.

Проверил: Исмаилов Р.Р.

БИРСК 2009

Содержание

  • Введение
    • 1. Афинные преобразования на плоскости
    • 2. Однородные координаты точки
    • 3. Аффинные преобразования в пространстве
    • Заключение
    • Список используемой литературы

Введение

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

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

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

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

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

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

Допустим, что на плоскости введена прямолинейная координатная система. Тогда каждой точке М ставится в соответствие упорядоченная пара чисел (х, у) ее координат (рис.1). Вводя на плоскости еще одну прямолинейную систему координат, мы ставим в соответствие той же точке М другую пару чисел - (x*, y*).

Рис. 1

Переход от одной прямолинейной координатной системы на плоскости к другой описывается следующими соотношениями:

x* = ax + by +l, (2.1)

y* = gx + by + m, (2.2)

где a, b, g, l, m - произвольные числа, связанные неравенством:

a b

= 0. (2.3)

g d

Формулы (2.1) и (2.2) можно рассматривать двояко: либо сохраняется точка и изменяется координатная система (рис.2) - в этом случае произвольная точка М остается той же, изменяются лишь ее координаты (х, у) | (х*, y*), либо изменяется точка и сохраняется координатная система (рис.3) - в этом случае формулы (2.1) и (2.2) задают отображение, переводящее произвольную точку М (х, у) в точку М* (х*, у*), координаты которой определены в той же координатной системе.

X*

Y*

Рис. 2

Рис. 3

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

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

Поворот вокруг начальной точки на угол j (рис.4) описывается формулами:

х* = x cosj - y sinj, (2.3)

y* = x sinj - y cosj. (2.4)

2. Растяжение (сжатие) вдоль координатных осей можно задать так:

x* = ax, (2.5)

y* = dy, (2.6)

a > 0, d > 0. (2.7)

Растяжение (сжатие) вдоль оси абсцисс обеспечивается при условии, что a > 1 (a < 1). На рис.5 a = d > 1.

Отражение (относительно оси абсцисс) (Рис.6) задается при помощи формул:

x* = x, (2.8)

y* = - y. (2.9)

На рис.7 вектор переноса ММ* имеет координаты l, m. Перенос обеспечивает соотношения:

x* = x + l, (2.10)

y* = y + m. (2.11)

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

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

Как известно из курса аналитической геометрии, любое преобразование вида (2.1) всегда можно представить как последовательное исполнение (суперпозицию) простейших преобразований вида 1 - 4 (или части этих преобразований).

Таким образом, справедливо следующее важное свойство аффинных преобразований плоскости: любое отображение вида (2.1) можно описать при помощи отображений, задаваемых формулами (2.3) - (2.11).

2. Однородные координаты точки

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

x1/x3 = x, x2/x3 = y (3.1)

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

1) в пространстве.

Необходимо заметить, что произвольная точка на прямой, соединяющей начало координат, точку О (0, 0, 0), с точкой МЭ (х, у,

1), может быть задана тройкой чисел вида (hx, hy, h).

Будем считать, что h = 0. Вектор с координатами hx, hy, h является направляющим вектором прямой, соединяющей точки О (0, 0, 0) и МЭ (х, у,

1). Эта прямая пересекает плоскость z = 1 в точке (х, у,

1), которая однозначно определяет точку (х, у) координатной плоскости ху.

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

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

В проективной геометрии для однородных координат принято следующее обозначение:

х: у: 1 (3.2)

или, более общо,

х1: х2: х3 (3.3)

(здесь непременно требуется, чтобы числа х1, х2, х3 одновременно в нуль не обращались).

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

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

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

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

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

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

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

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

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

Рассмотрим трехмерный случай (3D) (3-dimension) и сразу введем однородные координаты.

Поступая аналогично тому, как это было сделано в размерности два, заменим координатную тройку (x, y, z), задающую точку в пространстве, на четверку чисел

(x y z 1)

или, более общо, на четверку

(hx hy hz), h = 0.

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

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

Заключение

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

Программа построена на основе принципов объектно-ориентированного программирования (ООП). Такой подход был признан оптимальным для данной задачи с учетом того, что модель станка строится на основе компоновочного кода. При реализации сначала была рассмотрена цепочка узлов, представляющая станок. Это привело к трудностям и неудобству реализации отображения 3-х мерной модели в эмулированном графическом пространстве. Поэтому была реализована концепция, рассматривающая станок, как “дерево" объектов, исходя из того, что один из узлов станка, а именно станина, является неподвижным и зафиксированным жесткой привязкой к системе координат. Таким образом, полученная модель представляла собой объект, из которого выходили две “ветви” объектов.

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

Список используемой литературы

Шишкин Е.В., Боресков А.В. Компьютерная графика. М.: Диалог-МИФИ, 1995. - 288 с., ил.

Вайсберг А.В., Гриценко М.Е. Формирование структуры станка на ранних стадиях проектирования. - Точность автоматизированных производств (ТАП - 97). Сборник статей международной научно-технической конференции. Пенза, 1997., с.52 - 53.


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.