- •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 и фрактальное сжатие
- •Контроль знаний.
В случае а) в результат добавляется вершинаL. В случае б) в результат заносится S – точка пересечения ребра с границей. В случае в) нет вывода. В случае г) выдаются точка пересечения S и конечная точка ребра L.
Для определения взаимного расположения и направленности используется векторное произведение вектораP1P2, проведенного из начальной в конечную точку текущего ребра окна, на вектор P1S из начальной точки текущего ребра окна в очередную вершину S многоугольника (рисунок 40).
Рисунок 40 – Определение взаимного расположения окна и вершины
Если P1P2 ×P1S < 0, то поворот от P1P2 к P1S по часовой стрелке, т.е. точка S внутри окна.
Если P1P2 ×P1S > 0, то поворот от P1P2 к P1S против часовой стрелки, т.е. точка S вне окна.
Предложена аппаратная реализация этого алгоритма, состоящая из четырех идентичных ступеней отсечения без промежуточной памяти.
В алгоритме Сазерленда-Ходгмана в результат могут заноситься границы окна, даже если они и не ограничивают видимую часть отсеченного многоугольника. Это можно устранить дополнительным анализом, либо используя более сложный алгоритм отсечения.
4.3.6.2. Алгоритм отсечения многоугольника Вейлера-Азертона
Часто требуется отсечение по невыпуклому окну. Кроме того рассмотренный алгоритм может генерировать лишние стороны для отсеченного многоугольника, проходящие вдоль ребра окна отсечения. Далее рассматриваемый алгоритм Вейлера-Азертона свободен от указанных недостатков ценой заметно большей сложности и меньшей скорости работы.
Предполагается, что каждый из многоугольников задан списком вершин, причем таким образом, что при движении по списку вершин в порядке их задания внутренняя область многоугольника находится справа от границы.
81
В случае пересечения границ и отсекаемого многоугольника и окна возникают точки двух типов:
·входные точки, когда ориентированное ребро отсекаемого многоугольника входит в окно,
·выходные точки, когда ребро отсекаемого многоугольника идет с внутренней на внешнюю стороны окна.
1. Общая схема алгоритма Вейлера-Азертона для определения части отсекаемого многоугольника, попавшей в окно, следующая:
2. Строятся списки вершин отсекаемого многоугольника и окна. Отыскиваются все точки пересечения. При этом расчете касания не счи-
таются пересечением, т.е. когда вершина или ребро отсекаемого многоугольника инцидентна или совпадает со стороной окна (рисунок 41 и 42).
3. Списки координат вершин отсекаемого многоугольника и окна дополняются новыми вершинами – координатами точек пересечения.
Причем если точка пересеченияPk находится на ребре, соединяющем
вершины Vi , Vj , то последовательность точек Vi , Vj превращается в последова-
тельность Vj , Pk , Vj . При этом устанавливаются двухсторонние связи между од-
ноименными точками пересечения в списках вершин отсекаемого многоугольника и окна. Входные и выходные точки пересечения образуют отдельные подсписки входных и выходных точек в списках вершин.
4. Определение части обрабатываемого многоугольника, попавшей в окно выполняется следующим образом:
·Если не исчерпан список входных точек пересечения, то выбираем очередную входную точку.
·Двигаемся по вершинам отсекаемого многоугольника пока не обнаружится следующая точка пересечения; все пройденные точки, не включая прервавшую просмотр, заносим в результат; используя двухстороннюю связь точек пересечения, переключаемся на просмотр списка вершин окна.
·Двигаемся по вершинам окна до обнаружения следующей точки пересечения; все пройденные точки, не включая последнюю, прервавшую просмотр, заносим в результат.
·Используя двухстороннюю связь точек пересечения, переключаемся на список вершин обрабатываемого многоугольника.
·Эти действия повторяем пока не будет достигнута исходная вершинаочередная часть отсекаемого многоугольника, попавшая в окно, замкнулась.
82
Переходим на выбор следующей входной точки в списке отсекаемого многоугольника.
Рисунок 41 – Случаи не считающиеся пересечением.
Рисунок 42 – Частные случаи пересечения.
Модификация этого алгоритма для определения части отсекаемого многоугольника, находящейся вне окна, заключается в следующем:
a)исходная точка пересечения пересечения берется из списка выходных
точек,
b)движение по списку вершин окна выполняется в обратном порядке, т.е. так чтобы внутренняя часть отсекателя была слева.
На рисунке 43 иллюстрируется отсечение многоугольника ABCDEFGHI окном PQRS по алгоритму Вейлера-Азертона.
Рисунке 43 – Отсечение по алгоритму Вейлера-Азертона
83
Начиная с этого алгоритма, при рассмотрении многих дальнейших требуется представления о различных структурах данных и работе с ними. Следующий раздел и посвящен беглому рассмотрению некоторых наиболее важных структур данных.
4.4. Графические пакеты для работы с растровой графикой
Компьютерные программы для работы с растровой графикой настолько многочисленны и разнообразны, что перечислить их все невозможно. Программы для работы с растровой графикой делятся на три группы, которые перечисляются ниже. Каждый пользователь подбирает для себя программы для работы с растровой графики по своему вкусу. Программы для работы с растровой графикой выпускаются производителями как отдельно, так и в составе графических пакетов, в которых есть программы для работы с растровой и векторной графикой.
Программы создания растровой графики.
Существует множество компьютерных программ, предназначенных для работы с растровой графикой. Ряд графических редакторов (программ), например:
1.Corel Painter — программа, предназначенная для цифровой живописи и рисунка. С помощью графического планшета художник может работать с виртуальными инструментами в этой программе так же легко, как и с обычными карандашом или кистью. Интерфейс программы разработан в контексте создания цифровой живописи с «чистого листа»
2.Fractal Design Painter – является профессиональной программой создания художественных изображений. Программа построена по принципу воссоздания "рабочей среды", в данном случае – мастерской художника. Ее средства позволяют имитировать любые "естественные" инструменты и материалы.
К простейшим программам этого класса относится также графический редактор Paint.
Программы обработки растровой графики.
Другой класс растровых графических редакторов(программ) предназначен не для создания растровой графики(изображения) «с нуля», а для обработки готовых рисунков с целью улучшения их качества и реализации творческих идей. К таким программам, в частности, относятся:
84
1.Adobe Photoshop — это профессиональный растровый графический редактор. Основным назначением программы является создание фотореалистических изображений, ретуширование, цветокоррекция, колажирование, а также веб-дизайн и электронные публикации. Photoshop имеет все средства для работы с растровыми изображениями, поддерживает слои и работу с контурами.
2.GNU Image Manipulation Program или GIMP - растровый графический редактор, программа для создания и обработки растровой графики. Типичные задачи, которые можно решать при помощиGIMP, включают в себя создание графики и логотипов, масштабирование и кадрирование фотографий, раскраска, комбинирование изображений с использованием слоёв, ретуширование и преобразования изображений в различные форматы.
3.Corel PHOTO-PAINT — растровый графический редактор, разработанный канадской корпорацией Corel. Corel PHOTO-PAINT не имеет такой популярности как Adobe Photoshop, но сопоставим с ним по техническим возможностям.
Исходный материал для обработки в компьютерной программе может быть получен разными путями: сканированием цветной иллюстрации, загрузкой изображения, созданного в другом редакторе(программе), или вводом изображения с цифровой фотоили видеокамеры. При создании художественных композиций отдельные фрагменты часто заимствуют из библиотек изображенийклипартов, распространяемых на компакт-дисках. Основа будущего рисунка или его отдельные элементы могут быть созданы и в векторном графическом редакторе (программе), после чего их экспортируют в растровый формат.
Программы каталогизации растровой графики.
Особый класс программ для работы с растровой графикой представляют программы-каталогизаторы. Эти программы позволяют просматривать графические растровые файлы множества различных форматов, создавать на жестком диске удобные альбомы, перемещать и переименовывать файлы, документировать и комментировать иллюстрации.
1.ACDSee — условно-бесплатный организатор изображений для
Windows, выпускаемый ACD Systems.
2.IrfanView — небольшая по размеру программа для просмотра графических, видео- и аудио-файлов.
ВОС Windows для этих целей служит стандартная программа"Програм-
ма просмотра изображений и факсов Windows ".
85