- •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 и фрактальное сжатие
- •Контроль знаний.
рица тела используется для определения граней, которые экранируются самим этим телом.
Пусть наблюдатель находится в бесконечности на положительной полуоси z и смотрит на начало координат вдоль этой оси. В однородных координа-
тах |
вектор |
направления, вдоль |
которого |
смотрит |
наблюдатель, есть |
E = [0 |
0 -1 |
0]. Это одновременно и координаты точки, которая по оси z на- |
ходится в - ¥ . Нас интересует только то, с какой стороны граней нашего тела находится бесконечно удалённая точка. Если скалярное произведениеE на столбец, соответствующий какой-либо плоскости в матрице тела, отрицательно, то эта плоскость невидима из нашей точки наблюдения. Иными словами, условие
|
|
|
|
E ×V * < 0 |
(64) |
выделяет из матрицы тела те плоскости(грани), которые являются нелицевыми. После определения нелицевых плоскостей остаётся найти невидимые рёбра. Они образуются в результате пересечения пары нелицевых плоскостей.
6.6. Фракталы
Латинское fractus означает «составленный из фрагментов», или «дробный». В 1975 году французский математик Бенуа Мандельброт издал книгу
«The Fractal Geometry of Nature»; с того времени словофрактал стало обще-
принятым для обозначения нерегулярных, но самоподобных объектов. С точки зрения машинной графики, фрактальная геометрия незаменима при генерации искусственных облаков, гор, поверхности моря. Фактически найден способ легкого представления сложных неевклидовых объектов, образы которых весьма похожи на природные.
Рисунок 61 – Фрактал
133
Фракталом Мандельброта (рисунок 61) названа фигура, которая порождается следующим итерационным циклом:
zk +1 = zk2 + z0 , |
(65) |
где k = 0,1,...,n . |
|
Величины zk – это комплексные числа( zk = xk + iyk ), причём |
стартовые |
значения x0 и y0 – это координаты точки изображения. Для каждой точки изо-
бражения итерации выполняются ограниченное число раз (например, n = 500). Цикл итераций для фрактала Мандельброта можно получить в диапазоне
x Î[- 2.2 ... 1], y Î[-1.2 ... 1.2]. Данный алгоритм дает приближение к так называемому множеству Мандельброта. Множеству Мандельброта принадлежат точки, которые в течение бесконечного числа итераций не уходят в бесконечность (точки, имеющие черный цвет на рисунке). Точки, принадлежащие границе множества (именно там возникает сложные структуры) уходят в бесконечность за конечное число итераций, а точки, лежащие за пределами множества, уходят в бесконечность через несколько итераций (белый фон).
Рисунок 62 – Последовательное деление
Фрактал Джулия внешне совсем не похож на фрактал Мандельброта, однако он определяется итерационным циклом, почти полностью тождественным с циклом генерации Мандельброта, и также относится к классу алгебраических фракталов. Формула итераций для фрактала Джулия такова:
zk +1 = zk2 + c |
(66) |
134
где с – комплексная константа.
Условием завершения итераций является | zk |> 2 (так же, как и для фрак-
тала Мандельброта).
Геометрические фракталы – объекты, форма которых может быть описана как последовательность простых геометрических операций. Известный пример – кривая Кох. На рисунок 62 показан способ последовательного деления каждого отрезка прямой на три части.
К иному классу относятся фракталы, генерируемые по методу систем итеративных функций (Iterated Function Systems – IFS) 21 . Этот метод может быть описан, как последовательный итеративный расчёт координат новых точек в пространстве
xk +1 = Fx (xk , yk ),
(67)
yk +1 = Fy (xk , yk ),
где Fx и Fy – функции преобразования координат, например аффинного преоб-
разования. Эти функции и определяют форму фрактала.
Метод IFS применяется не только для создания изображений. Его начинают активно использовать для эффективного сжатия графических изображений при записи в файлы. Основная идея: поиск самоподобных фрагментов в изображении.
Контроль знаний.
1.Что необходимо для создания реалистичной модели объекта?
2.Для чего используются сплайновые поверхности?
3.Какими методами осуществляется закраска поверхностей?
4.Что такое инверсная кинематика движения?
5.Что такое рендеринг?
6.Какие виды сплайнов применяются в компьютерной графике?
7.Что такое геометрическое моделирование?
8.Какие существуют методы построения моделей?
9.Что такое проецирование?
10.Какие проекции существуют?
11.Для чего необходимо преобразование координат в компьютерной графике?
12.Как производится построение кривой Безье?
21
Здесь и далее числа даны в шестнадцатеричном представлении
135
13.Какие существуют методы удаления невидимых частей изображения в компьютерной графике?
14.Что такое фрактал?
136