- •1. Введение 3
- •Область применения
- •История развитияКг
- •Концептуальная модель интерактивно-графической системы
- •Вывод информации
- •Графопостроители
- •Электрографические, лазерные и струйные устройства
- •Электрографические, ферромагнитные, лазерные устройства
- •Принцип работы лазерного принтера
- •Струйные устройтва
- •Принцип работы струйных принтеров
- •Векторные и растровые дисплеи на электронно-лучевых трубках (элт)
- •Монохромная электронно- лучевая трубка
- •Отклоняющие системы
- •Люминофор
- •Цветные элт
- •Элт с теневой маской
- •Альтернативные способы вывода информации
- •Устройства ввода информации
- •Канал вывода информации
- •Прикладная структура данных
- •Прикладной графический пакет
- •Графическая система
- •Канал ввода информации
- •Растровая развертка примитивов
- •Растровая развертка прямых линий
- •Растровая развертка окружностей
- •Растровая развертка и заполнение полигональных областей
- •Области и алгоритмы по их заполнению
- •Алгоритм построчного сканирования
- •Простой рекурсивный алгоритм ( затравочное заполнение )
- •Алгоритм заполнения многоугольников
- •Простой алгоритм с упорядоченным списком ребер
- •Алгоритм заполнения по ребрам
- •Алгоритм со списком ребер и флагом
- •Работа с двухмерными объектами
- •Закраска изображения
- •Управление двухмерными объектами
- •Отсечение многоугольников
- •Последовательное отсечение многоугольника: алгоритм Сазерленда-Ходжмена
- •Последовательное отсечение многоугольника:алгоритм Вейлера - Азертона
- •Отсечение Вейлера- Азертона
Области и алгоритмы по их заполнению
Различают следующие типы областей:
внутренне - определенные области - области заданные своими внутренними значениями, т.е. все внутренние пэлы имеют одно определение (old) и ни один граничный не имеет этого значения;

|
4-х связные внутренне-определенные области |
8-и связные внутренне-определенные области |
Рис. 6-6
Внутренние определенные области делятся на:
четырехсвязные - каждый пэл имеет связь с другими по принципу "вверх- вниз" , "слева-справа";
восьмисвязные области – каждый пэл имеет связь по восьми направлениям.
В зависимости от области используют тот или другой алгоритм.
гранично – определенные области - области , заданные своими граничными значениями ( boundaries);

Рис. 6-7
Гранично-определённые области делятся на:
четырехсвязные;
восьмисвязные.
Связность относиться к внутренним пэлам , т.е. для внутреннего пэла 4-х связной области недоступны внешние.
области, задаваемые многоугольниками
Многоугольник задается в прикладной программе в виде координат вершин либо в виде списка ребер. В зависимости от способов описания областей применяются те или иные алгоритмы. Описание алгоритмов будет рассмотрено ниже.
Алгоритм построчного сканирования
Алгоритм построчного сканирования работает с многоугольниками, описание которых представлено в виде списка ребер.
Рисунок???
Данный алгоритм ориентирован на векторное представление изображения (без закрашивания области).
Простой рекурсивный алгоритм ( затравочное заполнение )
Данный алгоритм Предназначен для заполнения 4-х связной внутренне – определенной области.
Стратегия – определение значения соседнего пэла и рекурсивное обращение к процедуре если он принадлежит области.
Пример:
procedure FLOOD_FILL_4(x , y { начальная точка }, old , new { старое и новое значения пэла} : integer )
begin
if READ_P ( x , y ) = old { чтение пэла } then
begin
WRITE_P ( x , y , new ) ; { смена значения }
{ продвижение по всем 4-м направлениям }
FLOOD_FILL_4( x , y – 1 , old , new ) ;
FLOOD_FILL_4( x , y + 1 , old , new ) ;
FLOOD_FIIL_4( x – 1 , y , old , new ) ;
FLOOD_FILL_4( x + 1 , y , old , new ) ;
end
end
Задание:
Написать подпрограмму READ_P аналогично WRITE_P (см. выше) для привязки программ к системе координат экрана;

Рис. 6-8
Модифицировать алгоритм для 8-ми связной области.
Алгоритм заполнения многоугольников
Алгоритмы заполнения многоугольников деляться на две группы :
методы растровой развертки;
методы затравочного заполнения.
Метод растровой развертки основан на когерентности сканирующих строк ( соседние пикселы имеют одинаковое значение ).

Рис. 6-9 Многоугольник P1 - Р8
Шаги алгоритма:
1) Найти пересечения сканирующей строки со всеми ребрами .
2) Упорядочить точки пересечений по координате х .
3) Раскрасить пэлы между точками пересечений.
Пояснение:
Для строки С5 т. пересечения Q1 Q2 Q3 Q4 Q5 Q6 .
Пикселы разделяются на пары :
Q1-Q2 , Q2-Q3 ,…, Q5-Q6 {почередное переключение цвета
Особый случай - вершины. Если вершину С4 учитывать 1 раз , то S1S2 - цвет фона, S2S3 – цвет многоугольника. Поэтому вершины надо учитывать в списке дважды.
Поэтому при обнаружении вершины она определяется на локальный min или max. Для этого при стыковке 2-ух ребер сравниваются у координаты других концов векторов с координатой пересечения.

Рис. 6-10
Если у1 и у3 < y2 ( или у4 ) или у1 и у3 >у2 ( уn ), то это локальный экстремум. Глобального экстремума нет.
