
- •Часть 1. Основные алгоритмы
- •Введение
- •Предмет компьютерной графики
- •Основные понятия Векторные и растровые графические системы.
- •Программистская модель компьютерной графики
- •Координатные системы компьютерной графики
- •Геометрические преобразования Двумерные преобразования
- •Однородные координаты и матричное представление двумерных преобразований
- •Трехмерные матричные преобразования
- •Вопросы эффективности вычислений
- •Пример композиции трехмерных преобразований
- •Проецирование
- •Виды параллельных проекций
- •Центральные (перспективные) проекции
- •Геометрические модели трехмерных объектов
- •Полигональные сетки
- •Параметрические кубические кривые
- •Параметрические бикубические поверхности
- •Преобразования параметрических кривых и поверхностей
- •Основные растровые алгоритмы
Программистская модель компьютерной графики
Представление приложения компьютерной графики, его основные компоненты и схема их взаимодействия с внешним миром с точки зрения программиста показано на рис. 3.
Необходимые для визуализации исходные данные, содержащие описание изображения, хранятся на компьютере в виде прикладной структуры данных. Внедрением и извлечением информации из прикладной структуры данных управляет прикладная графическая программа. Прикладная программа передает данные и сформированные графические команды в графическую систему (рис. 3) .
Графическая система снабжена пакетом подпрограмм вывода, управляющих конкретным устройством вывода (монитором, принтером и пр.) и обеспечивающих визуализацию изображения этим устройством.
Большинство современных графических программ обеспечивают интерактивность компьютерной графики, т.е. дают пользователю возможность динамически управлять содержанием создаваемого на мониторе изображения с помощью устройств ввода (клавиатуры, мыши, джойстика, и др.). Ввод информации пользователем осуществляется с помощью подпрограмм ввода графической системы, которая передает вводимые данные в прикладную графическую программу.
Координатные системы компьютерной графики
При визуализации объектов на экране монитора или печатающем устройстве необходимо знать его координаты. В компьютерной графике основными являются две системы координат – мировые координаты, описывающие истинное положение объектов в пространстве с заданной точностью, и координаты устройства вывода (например, экрана), на котором осуществляется визуализация.
Цепочку преобразований от мировых к экранным координатам можно представить так, как показано на рис.4.
Видовые координаты применяются в случае необходимости и определяются видом последующего проецирования. При переходе от мировых координат к видовым могут выполняться: смена системы координат (например, правосторонней декартовой на левостороннюю), разворот системы координат в пространстве в соответствии с выбранным направлением проецирования, отсечение координат объекта по выбранному видимому объему.
Координаты проекции получаются после применения операции проецирования к видовым координатам объекта. В случае визуализации двумерных объектов мировые координаты и координаты проекции совпадают (проецирования не требуется).
Для каждого конкретного случая визуализации цепочка преобразований систем координат может сильно отличаться от приведенной. Самый крайний случай – когда мировые координаты объекта сразу заданы в экранных пикселях и никаких преобразований не требуется.
Геометрические преобразования Двумерные преобразования
Рассмотрим преобразования координат точек на плоскости. На рисунке 5 точка A перенесена в точку B.
Математически
этот перенос можно описать с помощью
вектора переноса
.
Пусть
радиус вектор, соответствующий вектору
переноса
.
Тогда переход из точки A
в точку B будет
соответствовать векторной записи
.
Отсюда получаем, что для переноса точки
в новое положение необходимо добавить
к ее координатам некоторые числа, которые
представляют собой координаты вектора
переноса:
(1)
Масштабированием объектов называется растяжение объектов вдоль соответствующих осей координат относительно начала координат. Эта операция применяется к каждой точке объекта, поэтому можно также говорить о масштабировании точки. При этом, конечно, речь не идет об изменении размеров самой точки. Масштабирование достигается умножением координат точек на некоторые константы. В том случае, когда эти константы равны между собой, масштабирование называется однородным.
На рис.6 приведен пример однородного масштабирования треугольника ABC. После применения операции однородного масштабирования с коэффициентом 2 он переходит в треугольник A'B'C'. Обозначим матрицу масштабирования
.
(2)
Для точек A и A' операция масштабирования в матричном виде будет выглядеть следующим образом:
. (3)
Или в матричном виде
A' = A S (4)
Рассмотрим далее операцию вращения точки на некоторый угол относительно начала координат. На рисунке 7 точка A = (x, y) переходит в точку B = (x', y') поворотом на угол .
Найдем преобразование
координат точки А в точку В.
Обозначим угол,
который составляет радиус-вектор
с осью Оx. Пусть r
– длина радиус-вектора
,
тогда
(5)
Так как
и
,
то подставляя эти выражения в уравнения
для x' и y',
получаем:
(6)
В матричном виде вращение точки А на угол выглядит следующим образом:
(7)
Введем обозначение
Тогда в матричном виде получим
A' = A R (8)