- •Часть 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)
