- •Закраска. (Растровая развертка сплошных областей (ррсо)).
- •Заполнение многоугольников.
- •Простой алгоритм закраски с упорядоченным списком ребер.
- •Алгоритм заполнения по ребрам.
- •Алгоритм заполнения по ребрам с перегородкой.
- •Алгоритм со списком ребер и флагом.
- •Алгоритмы заполнения (закраски) с затравкой.
- •Простой алгоритм закраски с затравкой
- •Построчный алгоритм закраски с затравкой.
- •Отсечение.
- •Двух мерное отсечение.
- •2: Отрезок невидим.
- •3: Переходим к следующему отрезку. Метод Коэна – Сазерленда.
- •Непараметрический способ.
- •Метод предложен Сазерлендом и Спрулом: «Метод разбиения отрезка средней точкой».
- •Отсечение произвольным окном (выпуклым).
- •Отсечение параметрически заданного отрезка прямоугольным регулярным окном (частный случай нерегулярного).
- •Алгоритм Кируса – Бека.
- •Внутреннее и внешнее отсечение.
- •Определение факта выпуклости окна. Метод переносов и поворотов.
- •Разрезание невыпуклого окна.
- •Разбиение невыпуклых многоугольников.
- •Форматы графических файлов.
- •Истинно черно-белые изображения в градациях серого.
- •Цветовые плоскости изображения.
- •Гарантия точности соответствия цветов.
- •Колориметрические стандарты.
Простой алгоритм закраски с упорядоченным списком ребер.
Определить для каждого ребра МУ точки пересечения со сканирующими строками, проходящими через середины интервалов. Можно использовать алгоритм Брезенхэма.
Горизонтальные ребра игнорируются.
Занести каждое пересечение (Х+0,5) в список.
Отсортировать список по строкам и по возрастанию Х в строке, то есть (Х1 Y1) предшествует (Х2 Y2), если Y1> Y2 или Y1= Y2 и Х1≤Х2.
Преобразовать эти данные в растровую форму, для этого выделить из отсортированного списка пары элементов (Х1 Y1) и (Х2 Y2).
Закрасить на сканирующей строке Y пиксели для целых значений Х, такие, что Х1≤Х+0,5≤ Х2.
Рассмотрим МУ:

Пересечение ребер со сканирующими строками:
Р1Р2 – игнорируем.
Р2Р3 : (8 ; 1,5), (8 ; 2,5), (8 ; 3,5), (8 ; 4,5), (8 ; 5,5).
Р3Р4 : (5,5 ; 3,5), (6,5 ; 4,5), (7,5 ; 5,5).
Р4Р5 : (4,5 ; 3,5), (3,5 ; 4,5), (2,5 ; 5,5), (1,5 ; 6,5).
Р5Р1 : (1; 1,5), (1; 2,5), (1; 3,5), (1; 4,5), (1; 5,5), (1; 6,5).
Весь список сортируется в порядке сканирования сначала сверху вниз, а затем слева направо:
(1; 6,5), (1,5 ; 6,5), (1; 5,5), (2,5 ; 5,5), (7,5 ; 5,5),
(8 ; 5,5), (1; 4,5), (3,5 ; 4,5), (6,5 ; 4,5), (8 ; 4,5),
(1; 3,5), (4,5 ; 3,5), (5,5 ; 3,5), (8 ; 3,5), (1; 2,5),
(8 ; 2,5), (1; 1,5), (8 ; 1,5).
Выделяем из списка пары пересечений:
(1; 6,5) - (1,5 ; 6,5), (1; 5,5) - (2,5 ; 5,5), (7,5 ; 5,5) - (8 ; 5,5), (1; 4,5) - (3,5 ; 4,5), (6,5 ; 4,5) - (8 ; 4,5),
(1; 3,5) - (4,5 ; 3,5), (5,5 ; 3,5) - (8 ; 3,5), (1; 2,5) - (8 ; 2,5), (1; 1,5) - (8 ; 1,5).
Применяем алгоритм закраски пикселей, описанный выше:
Список закрашиваемых пикселей:
(1; 6).
(1; 5), (2; 5), (7; 5).
(1; 4), (2; 4), (3; 4), (6; 4), (7; 4).
(1; 3), (2; 3), (3; 3), (4; 3), (5; 3), (6; 3), (7; 3).
(1; 2), (2; 2), (3; 2), (4; 2), (5; 2), (6; 2), (7; 2).
(1; 1), (2; 1), (3; 1), (4; 1), (5; 1), (6; 1), (7; 1).
Результат:

Замечание:Для каждого ребра МУ точки пересечения со сканирующими строками, могут проходить не только через середины интервалов (например: Х=0,8).
Главный недостаток простого алгоритма с упорядоченным списком ребер – необходимость сортирования большого списка.
Алгоритм заполнения по ребрам.

Для каждой сканирующей строки, пересекающей ребро в (Х1 Y1), перекрасить все пиксели, у которых центр лежит справа от (Х1 Y1), то есть для Х+0,5> Х1.
Вычисление пересечения сканирующих строк с ребрам производится в соответствии с соглашением о середине интервала между сканирующими строками.
Недостаток алгоритма заполнения по ребрам – многие пиксели пересекаются по несколько раз.
Для уменьшения количества пикселей можно ввести так называемую перегородку. Ее обычно проводят через одну из вершин МУ.
10.11.02
Лекция 9.
Алгоритм заполнения по ребрам с перегородкой.
Д

Если пересечение находится слева от перегородки, то перекрасить все пиксели, центры которых лежат справа от пересечения сканирующей строки с ребром и слева от перегородки.
Если пересечение находится справа от перегородки, то перекрасить все пиксели, центры которых лежат слева или на пересечении сканирующей строки с ребром и справа от перегородки.
(Используется соглашение о середине интервала между сканирующими строками).
Недостаток: многократное перекрашивание пикселей.
