- •I. ОСНОВНЫЕ ПОНЯТИЯ СОВРЕМЕННОЙ КОМПЬЮТЕРНОЙ ГРАФИКИ
- •1.1. Философия развития средств визуализации
- •1.2. Понятия компьютерной графики
- •1.3. Основные направления современной компьютерной графики
- •Контроль знаний.
- •2.1. Устройства видеовывода
- •2.1.1. Видеоадаптеры
- •2.1.1.1. История видеосистем персональных компьютеров
- •2.1.1.2. Устройство видеоадаптера VGA
- •2.1.1.3. Видеоадаптеры SVGA
- •2.1.1.4. Современные тенденции конструирования видеоадаптеров
- •2.1.2. Мониторы
- •2.1.3.Принтеры
- •2.1.4. Плоттеры
- •2.2. Устройства ввода графической информации
- •2.2.1. Мышь в графических режимах
- •2.2.2. Тачпад и Трекпойнт
- •2.2.3. Дигитайзеры
- •2.2.4. Сканеры
- •Контроль знаний.
- •3.1. Основные определения
- •3.2. Особенности цветового зрения человека
- •3.3. Цветовые модели компьютерной графики
- •3.3.1. Аддитивные цветовые модели
- •3.3.2 Субтрактивные цветовые модели
- •3.3.3. Перцепционные цветовые модели. Модели CIE
- •Контроль знаний.
- •IV. РАСТРОВАЯ ГРАФИКА
- •4.1. Геометрические характеристики растра
- •4.2. Методы улучшения растровых изображений
- •4.2.1. Устранение ступенчатого эффекта – антиалиасинг (antialiasing)
- •4.2.2. Эмуляция оттенков цвета – дизеринг (dithering)
- •4.3. Алгоритмические основы растровой графики
- •4.3.1. Поиск оптимального алгоритма рисования прямой
- •4.3.2. Инкрементный алгоритм Брезенхема (Bresenham) для прямой
- •4.3.3. Алгоритмы рисования окружности
- •4.3.4. Заполнение многоугольников
- •4.3.4.1. Построчное заполнение
- •4.3.4.2. Сортировка методом распределяющего подсчета
- •4.3.5. Отсечение отрезков
- •4.3.5.1. Двумерный алгоритм Коэна-Сазерленда
- •4.3.6. Отсечение многоугольника
- •4.3.6.1. Алгоритм Сазерленда-Ходгмана
- •4.3.6.2. Алгоритм отсечения многоугольника Вейлера-Азертона
- •Контроль знаний.
- •5.1. Введение в векторную графику
- •5.2. Элементы (объекты) векторной графики. Объекты и их атрибуты
- •5.3. Цвет в векторной графике
- •5.4. Структура векторной иллюстрации
- •5.5. Применение векторной графики
- •5.6. Графические пакеты для работы с растровой графикой
- •Контроль знаний.
- •VI. ТРЁХМЕРНАЯ ГРАФИКА
- •6.1. Основные понятия трехмерной графики
- •6.3. Геометрическое моделирование
- •6.3.1. Элементы моделей
- •6.3.2. Методы построения моделей
- •6.4. Построение проекций пространственных образов
- •6.5. Алгоритмические основы трёхмерной графики
- •6.5.1. Преобразования координат
- •6.5.2. Параметрическое задание кривых на плоскости и в пространстве. Кривые Безье
- •6.5.3. Удаление невидимых частей изображения. Закрашивание граней
- •6.5.3.1 2D алгоритм Сазерленда-Кохена
- •6.5.3.2 3D алгоритм Робертса, алгоритм Варнока
- •6.6. Фракталы
- •Контроль знаний.
- •VII. ФОРМАТЫ ГРАФИЧЕСКИХ ФАЙЛОВ
- •7.1. Основные понятия
- •7.2. Растровые форматы файлов и алгоритмы сжатия
- •7.2.1. Формат PCX и групповое кодирование
- •7.2.2. Формат BMP
- •7.2.3.Формат TGA (Targa)
- •7.2.4. Формат GIF
- •7.2.5. Aлгоритм сжатия LZW для GIF
- •7.2.6. Формат JPEG и алгоритм сжатия с потерями
- •7.2.7. Формат RAW для профессионального использования
- •7.2.8. Формат FIF и фрактальное сжатие
- •Контроль знаний.
Рассмотрим похожий пример, но только для плоскости: пусть нам нужно получить функцию расчёта координат (X, Y) для поворота вокруг центра с координатами ( x0 , y0 ):
éX ù |
|
éсдвиг объектныхù |
|
éповоротù |
éсдвиг объектныхùéx |
ù |
|
||||||||||||||
ê |
ú |
= |
ê |
|
|
|
ú |
× |
ê |
на угол |
ú |
ê |
|
|
|
|
úê |
ú |
= |
||
êY |
ú |
êкоординат на |
ú |
ê |
ú × |
êкоординат на |
úêy |
ú |
|||||||||||||
ê |
ú |
|
ê |
,-y0 |
|
|
ú |
|
ê |
|
a |
|
ú |
ê |
, y0 |
|
|
|
úê |
ú |
|
ë 1 |
û |
|
ë- x0 |
|
|
û |
|
ë |
|
|
û |
ëx0 |
|
|
|
ûë1 |
û |
(54) |
|||
é1 |
|
0 |
x0 ù |
écosa |
- sina |
|
0ù |
|
é1 |
0 |
- x0 ù |
|
éxù |
|
|
||||||
|
|
|
|
|
|
|
|||||||||||||||
ê |
|
1 |
ú |
ê |
|
cosa |
|
ú |
× |
ê |
1 |
- |
ú |
× |
ê |
ú |
|
|
|
||
ê0 |
|
y0 ú |
× êsin a |
|
0ú |
ê0 |
y0 ú |
êy |
ú |
|
|
|
|||||||||
ê |
|
|
ú |
ê |
0 |
|
0 |
|
|
ú |
|
ê |
|
|
ú |
|
ê |
ú |
|
|
|
ë0 0 1 û |
ë |
|
|
|
1û |
|
ë0 0 |
|
1 û |
|
ë1 |
û |
|
|
|
Наиболее употребительными в компьютерной графике являютсядекартовы17 системы координат, как способ удобного создания абстракций реальных предметов окружающего мира. Цилиндрические, сферические, проективные и различные другие координаты в пространстве обычно используются для моделирования специальных эффектов при деформации объектов.
При отображении пространственных объектов используют понятиемировых координат – трёхмерных декартовых координатах пространства, в котором размещаются объекты. Каждый из объектов обычно имеет собственнуюобъ-
ектную систему координат. И, наконец, экранная система координат связана с тем графическим устройством, где в заданной проекции на картинной плоскости (в общем случае– картинной поверхности) отображается создаваемая трёхмерная сцена. Так как практически все устройства графического вывода являются плоскостными, то две из трёх экранных координат (X и Y) располагаются в плоскости экрана соответственно по горизонтали и вертикали, а координата Z направлена перпендикулярно им (если «вглубь» экрана, то получившаяся система координат левосторонняя).
6.5.2. Параметрическое задание кривых на плоскости и в пространстве. Кривые Безье
Параметрически заданной кривой называется множество точек M (x, y, z),
координаты которых определяются соотношениями
x = x(t) , y = y(t) , z = z(t) , 0 £ t £ 1. |
(55) |
17
Декартова система координат – прямолинейная система координат в евклидовом пространстве
126
В векторной форме rr = rr(t)
Кривая называется регулярной, если rr¢(t) ¹ 0 в каждой её точке18; т.е. в
каждой точке кривой существует касательная, положение которой меняется непрерывно вдоль кривой. Геометрическим образом функции трех переменных F(x, y, z) служит поверхность. Чтобы определить положение точки на ней, нужны уже два параметра U и V (например, широта и долгота на поверхности шара).
Кривая Безье (Bezier curve).
Алгоритм независимо получен Пьером Безье и Полем Кастельё в конце 60-х годов для технического проектирования. Применяется в интерактивных системах компьютерной графики для приближенного решения задач напо строение кривых по точкам.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рисунок 57 – Построение кривой |
|
|
||||||||||
|
|
|
|
|
|
Пусть |
на |
плоскости или |
в пространстве |
задан наборточек-ориентиров |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кривой Безье, определяемой этим набором точек, называется кри- |
||||||||||||||||||
V0 ,V1 ,...,Vn . |
||||||||||||||||||||||||||||||||
вая, определяемая уравнением |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
(t) = åCni t i (1 - t)n-1Vi |
, 0 £ t £1, |
|
(56) |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i=0 |
|
|
|
|
|
|
|
|
||
где Cni = |
|
|
|
n! |
|
– число сочетаний из n |
элементов по i (биномиальный коэф- |
|||||||||||||||||||||||||
i!(n - i)! |
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
фициент). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
) |
|
|
|
|
Элементарная кубическая |
кривая |
|
Безье |
для четырёх |
точек-ориентиров |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
V = (V0 ,V1 ,V2 ,V3 ) задаётся параметрическим уравнением: |
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
(t) = (1 - t)3 ×V |
+ 3t × |
(1 - t)2 ×V |
|
+ 3t 2 × |
|
|
|
+ t 3 ×V |
, 0 £ t £1 (57) |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1 - t) ×V |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
1 |
|
|
2 |
3 |
||||||
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Скорость движения параметра t вдоль кривой |
|
|
|
|
|
|
|
|
|
127
или в матричной записи19:
æ x |
|
x |
x |
|
x |
|
ö |
) ç |
0 |
1 |
|
2 |
|
3 |
÷ |
где V = ç y0 |
y1 |
y2 |
y3 |
÷, |
|||
ç z |
0 |
z |
z |
2 |
z |
3 |
÷ |
è |
1 |
|
|
ø |
|
|
|
|
r |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
(t) =V |
MT , |
|
|
|
|
|
|
(58) |
||||
|
æ |
1 |
- 3 3 |
-1ö |
|
|
|
æ 1 |
ö |
|||||||
|
ç |
|
|
|
|
|
|
|
|
÷ |
|
|
|
ç |
|
÷ |
) |
ç0 |
3 |
- 6 3 ÷ |
|
|
|
ç t |
÷ |
||||||||
|
|
|
||||||||||||||
M = |
ç |
0 |
0 |
3 |
- 3 |
÷, |
T = |
çt 2 ÷ |
||||||||
|
ç |
|
|
|
|
|
|
|
|
÷ |
|
|
|
ç |
3 |
÷ |
|
ç |
0 |
0 |
0 |
1 |
÷ |
|
|
|
ç |
÷ |
|||||
|
è |
ø |
|
|
|
èt |
|
ø |
M носит название базисной матрицы кубической кривой Безье. Свойства кривой Безье:
–Является гладкой;
–Начинается точно в точке V0 и заканчивается в Vn , касаясь при этом от-
резков V0V1 и Vn-1Vn .
– Целиком лежит в выпуклой оболочке, порождаемой массивом точекориентиров (рисунок 58 даёт представление, как создаётся элементарная кривая Безье в программе Adobe Illustrator между двумя точками и двумя их подвижными направляющими – handles);
Рисунок 58 – Построение элементарной кривой Безье
– Степень функциональных коэффициентов напрямую связана с количеством точек в наборе; при добавлении хотя бы одной новой точки надо пересчитать все коэффициенты; при этом изменение координат одной точки приводит к заметному изменению вида кривой;
–Многочлен Безье можно представить как некоторую намагниченную эла-
стичную ленту, закреплённую в точках V0 и Vn . Точки-ориентиры представля-
ются магнитами, к которым притягивается эта лента. Несколько точекориентиров могут иметь одинаковые координаты, при этом увеличивается вес такой точки, т.е. кривая притягивается ближе к ней.
В практических вычислениях часто оказывается удобным пользоваться кривыми, составленными из элементарных кривых Безье. Определим составную кубическую кривую Безье как объединение элементарных кубических
19
Здесь и далее используются обычные трёхмерные декартовы координаты
128