- •Элементы интерактивной компьютерной графики
- •Класс 2: двухуровневые или представляемые в нескольких «цветах» изображения
- •Структура графического изображения
- •Блок-схема графической системы
- •Методы кодирования графической информации
- •Позиционные методы кодирования ги. Рецепторный метод кодирования
- •Метод тетрарного дерева
- •Структурные методы кодирования Цепной метод кодирования
- •Кусочно – линейная аппроксимация контура изображения
- •Аппроксимация группы точек окружностью
- •Аналитические методы кодирования
- •Методы структурно – символического кодирования
- •Типичная система команд дисплейного процессора
- •Форматы дисплейных команд
- •А) Команды, управляющие лучом гд.
- •Геометрические преобразования
- •Двумерные преобразования Перенос (сдвиг)
- •Масштабирование
- •Поворот изображения
- •Однородные координаты и матричное представление двумерных преобразований
- •Композиция двумерных преобразований
- •Вопросы эффективности
- •Матричное представление трехмерных преобразований
- •Видовая операция (отсечение части изображения по прямоугольному окну)
- •Высокопроизводительные графические преобразования
- •Алгоритмы растровой графики
- •Алгоритм Брезенхэма для отрезков прямых
- •Растровая развертка окружностей
- •Алгоритм брезенхема для генерации окружности
- •Типы графических дисплеев Векторный дисплей
- •Организация памяти в растровых графических дисплеях
- •Организация дисплейного файла
Структура графического изображения
Графическое изображение (ГИ) – совокупность примитивов и множества отношений между ними. ГИ имеет идентификатор, может быть подвержено модификации, но вначале должно быть сгенерировано и выведено на экран монитора.
Примитивы – это графические примитивы (точка, вектор, дуга) и литеры.
Все примитивы связаны между собой структурой ГИ и ориентированы в двух- или трехмерном пространстве. Указанные примитивы универсальны и не зависят от конкретной прикладной задачи. Каждый примитив может генерироваться аппаратными или программными средствами.
Координаты примитивов задаются в единицах дисплейного растра (для растровых дисплеев) или в непрерывных координатах (для векторных дисплеев).
Точка – задается парой (тройкой) координат. При выводе точки на экран ГД необходимо выполнить последовательность команд:
- определить координаты xi, yi,
- преобразовать координаты в управляющие сигналы,
- выработать яркость точки,
- задать команду на регенерацию точки.
Вектор (отрезок прямой) – задается двумя (тремя) парами координат. При выводе отрезка на экран ГД необходимо выполнить последовательность команд:
- определить координаты начальной точки xo, yo;
- определить координаты конечной точки в приращениях (x y);
- задать тип и цвет линии;
- выдать команду уровня засветки линии;
- регенерировать линию с заданной частотой.
Дуга – задается тремя парами координат (две точки и радиус).
Литера – определяется своим кодом и точкой привязки ее к ГИ. Для генерации литер используются или специальные аппаратные средства, или они строятся программно.
ГИ и его отдельные составные части обладают определенными атрибутами (визуальными свойствами) и статусом к различным геометрическим преобразованиям.
Атрибутами ГИ являются:
- цвет (вся палитра цветов и их оттенков);
- яркость (пусто, малая, средняя, высокая);
- толщина и тип линии (сплошная, пунктирная, ….).
Статус ГИ (или его части) позволяет (или не позволяет) модифицировать изображение или его часть. Например, условное изображение символа компонента на электрической схеме поворачивать нельзя, а условное изображение компонента на ПП поворачивать можно и т.д.
Графическое изображение разбивается на три иерархических уровня:
- на нижнем уровне расположены примитивы (их набор определяется применяемой графической системой CORE, GKS и пр.). Состав примитивов: графические примитивы и литеры. Код графического примитива является фактически адресом команд, которые воспроизводят эти примитивы на экране.
Структура данных примитива имеет следующий вид:
-
CP
X0
Y0
CLR
------
CP - код примитива, X0 Y0 – координаты точки привязки примитива, CLR –цвет примитива, и т.п.
Литеры - на изображение может быть наложен текст. Все литеры сохраняются в виде совокупности координат вершин ломаной, что дает возможность задавать шрифты любого размера, цвета и выводить их в любую точку экрана дисплея. Из литер можно составить текстовый сегмент.
Рис. Структура графического изображения
- на втором уровне иерархии расположены сегменты изображения, которые представляют собой группу примитивов, объединенных в единое целое (символ компонента электрической схемы). Каждый сегмент имеет свой идентификатор. К сегментам применяются различные геометрические преобразования. При построении сегмента требуется обращение к соответствующим подпрограммам.
Формирование сегмента влечет за собой образование локальной системы координат, в которой и определяются все параметры сегмента.
Координаты точки привязки (X1 Y1) сегмента S1определяются от начальной точки базовой системы координат (X0 Y0).
Для конкретной пользовательской задачи атрибуты одного и того же сегмента изображения могут иметь различные значения. Поэтому конкретные атрибуты сегмента определяются при выводе на экран экземпляра (образца) сегмента, который является частью изображения и наследует визуальные свойства и статус формируемого изображения.
Структура данных сегмента имеет следующий вид:
-
NS
X0
Y0
Mx
My
ANG
FLG
P1
P4
Pk
Pn
---
NS – имя сегмента, X0 Y0 – координаты точки привязки, Mx My - масштабные коэффициенты по соответствующим осям, ANG – угол поворота сегмента, FLG – параметры текстовых сегментов, Р1, Р4, Рк – коды (имена) примитивов, составляющих сегмент.
На высшем уровне расположено собственно графическое изображение, составленное из связанных логикой рисунка различных сегментов и отдельных примитивов и литер.
Структура данных изображения
BKGR |
NI |
Mx |
My |
ANG |
NS1 |
NS4 |
|
NSk |
|
--- |
BKGR - цвет фона экрана, NI – имя изображения, Mx My – масштабные коэффициенты по соответствующим осям, ANG – угол поворота изображения, NS1, NS4 , NSk - имена сегментов, составляющих изображение.