- •Предмет компьютерная графика.
- •Эволюция технических средств компьютерной графики.
- •3. Программистская модель машинной графики.
- •4. Графический пакет. Основные понятия и определения.
- •Простой графический пакет.
- •Независимость пакета от графических устройств.
- •Геометрические преобразования.
- •Алгоритм Брезинхейма рисования отрезка.
- •Алгоритм впервые разработан для графопостроителя
- •Рисование окружности методом Брезинхейма.
- •Компьютерные шрифты.
- •Термины, относящиеся к шрифтам.
- •Метрические параметры шрифтов.
- •Заполнение областей.
- •Растровая развертка многоугольника.
- •Реалистичные изображения.
- •I. Поверхностные модели
- •Сплайновая кривая.
- •II. Модели сплошных тел.
- •III. Модель сплошных конструктивов.
- •Полигональные сетки.
- •Параметрические кубические кривые.
- •Цвет компьютерной графики.
- •5 Уровней освещенности:
- •Цветовые модели кг.
- •Методы закраски.
- •Закраска полигональной сетки.
- •Параметрические кубические кривые и поверхности.
- •Параметрические бикубические поверхности.
- •Удаление невидимых линий и поверхностей.
- •Сравнение по глубине и перспективным преобразованием.
- •Метод сортировки по глубине.
- •Метод плавающего горизонта.
- •Метод построчного сканирования.
- •Метод разбиения области.
- •Алгоритм Варнока
- •Комбинация примитивов.
- •Взаимное положение точки и объекта.
- •Определение видимых точек.
- •Изображение основных примитивов методом трассировки лучей.
- •2. Квадратичные поверхности.
- •Изображение прозрачных, преломляющих и зеркальных поверхностей.
- •Управление процессом формирования изображения.
- •Детализация поверхностей.
- •Способы вывода изображения в Windows.
4. Графический пакет. Основные понятия и определения.
Программе нужно вывести график функции баланс за 1999 г.
Объект – соотношение между двумя переменными.
Изображение – геометрическое представление этого соотношения.
Чтобы сформировать изображение, программа должна описать примитивы (отрезки, точки, буквы) и задать положение этих примитивов в некоем координатном пространстве. При этом пользователю желательно описывать примитивы в зависимости от задачи. Система координат с плавающей точкой называется пользовательские или мировые координаты. Существует много устройств, которые перемещаясь, формируют изображение.
Для совместимости между различными устройствами вводится понятие текущее положение – положение точки в мировом координатном пространстве, в котором находится абстрактный текущий узел. Наличие текущего положения сокращает число параметров. Команды графического пакета, могут быть абсолютными или относительными. Прямоугольная область в мировом координатном пространстве, которое ограничивает видимую область, часть изображения в компьютерной графике называется окном (window). По отношению к окну примитивы подвергаются отсечению, т.е. часть примитивов не попадающие в окно отсекаются и удаляются. Изображение может занимать не всю window поверхность, а только её часть. Часть window поверхности, на которое выводится изображение, называют полем вывода (view port). Размер поля можно задавать в координатах, связанных с устройством, но тогда пакет привязан к конкретному устройству. Для общего описания вводим систему нормированных координат, считаем видовую поверхность размером 1х1, если устройство не квадратное, то выделяем область.
Процесс отсечения примитивов по границам окна и отображения окна на поле вывода называется видовая операция.
Сегмент изображения – есть замкнутая последовательность примитивов, воспринимаемая графическим пакетом как единое целое. Сегмент имеет имя и с ним разрешен набор операций сегмента, перемещение, добавление элемента к сегменту.
Простой графический пакет.
Формирование изображения состоит из этапов:
Прикладная программа формирует поток примитивов, у которой строится изображение.
Примитивы, заданные в мировых координатах подвергаются отсечению по границам окна и преобразуются в нормированные координаты.
Из примитивов, заданных в нормированных координатах формируется дисплейная программа, т.е. поток команд конкретного дисплейного процесса.
Дисплейный процессор преобразует в свечении на экране, краску на бумаге и т.д.
примитивы МК
примитивы
МК
видимая операция
графический
пакет
Генератор команд – зависит от типа аппаратуры графического пакета.
Процессор видовой операции – универсальные команды.
Он выдает следующие операции:
О
тсечение
примитивов по границам окна.
Примитивы: точки, отрезки, текст.
Точки, лежащие на границах окна, принадлежат окну.
точки
Если у отрезка одна точка в окне, а другая наружу, то на границе окна
Если обе точки наружу, но пересекают окно , то пересечение с окном берем
Алгоритм отсечения отрезков называется алгоритмом Kohan Sutherland отсечения отрезков: каждому концу отрезка ставится в соответствие 4-битовый код вне/внутри.
Код строится из следующих соображений :
-
1001
А *
1000
1010
*В
0001
0000
0010
0101
0100
G*
0110
Бит 1=1, если точка лежит выше окна
Бит 2=1, если точка лежит ниже окна
Бит 3=1, если точка справа от окна
Бит 4=1, если точка слева от окна
Шаг 1. Если для обоих концов отрезка побитовая операция «или» над кодами его концов дает в результате 0, то отрезок лежит целиком внутри окна.
Шаг 2. Если для обоих концов побитовая операция «и» даёт результат не равный 0, то отрезок лежит целиком с одной стороны окна. Он отбрасывается и не рисуется.
Шаг 3. Если «и» = 0, то отрезок нельзя не отбросить целиком, не принять целиком. Если один из концов отрезка лежит внутри окна, находим точку пересечения отрезка с границей окна и изображаем полученный отрезок.
Шаг 4. Если оба конца за пределами окна, то находим точку пересечения отрезка с границей окна, часть отрезка за границей отбрасываем и оставшийся отрезок подвергаем повторной проверке.
Для упрощения поиска точки пересечения с границами окна, берем границы вертикальной и горизонтальной линий.
X=(x2-x1)/(y2-y1)(y-y1)+x1
Несколько методов отсечения текста по границе окна.
Каждую букву считаем совокупностью отрезков и подвергаем отсечению каждый отрезок в отдельности.
Каждую букву считаем неделимым объектом. Если прямоугольник, занимаемый буквой, попадает в окно, то букву выводим.
Слово или строку целиком считаем неделимым объектом, если в окно попадает, то выводим.
О
тображение
окна на поле вывода.
S,a – const, зависят от окна и поля вывода.
