Скачиваний:
81
Добавлен:
09.05.2014
Размер:
684.54 Кб
Скачать

02.11.02

Лекция 8.

Закраска. (Растровая развертка сплошных областей (ррсо)).

Генерация сплошных областей из сплошных описаний ребер или вершин многоугольника (МУ) называется растровой разверткой сплошных областей, заполнением многоугольников или контуров.

Два подхода:

  1. Растровая развертка.

  2. Затравочное заполнение.

В методах растровой развертки в порядке сканирования строк пытаются определить, лежит ли точка внутри многоугольника или контура? При этом идут от верха многоугольника или контура вниз.

В методах затравочного заполнения (ЗЗ) предполагается, что известна некоторая точка (затравка) внутри замкнутого контура. Если соседние точки расположены не внутри – значит обнаружена граница контура. Если точка оказалась внутри контура, то она становится новой затравочной точкой и поиск продолжается рекурсивно.

Заполнение многоугольников.

Простейший метод – проверка на принадлежность внутренности МУ каждого пикселя в растре. Это расточительно, так как обычно большинство пикселей лежит вне МУ.

Вычисляем для МУ прямоугольную оболочку – наименьший многоугольник, содержащий внутри себя МУ.

Более эффективный метод использует тот факт, что соседние пиксели имеют одинаковые характеристики (кроме пикселей граничных ребер) – так называемая «пространственная принадлежность». Для растрового графического терминала соседние пиксели на одной сканирующей строке, вероятно, имеют одинаковые характеристики. Это когерентность растровых строк. Характеристики пикселей на данной строке изменяются только там, где ребро МУ пересекает строку. Эти пересечения делят сканирующую строку на области.

Сканирующая строка 2 делится на 3 области:

Х<1 – вне МУ.

1≤Х≤8 – внутри МУ.

Х>8 – вне МУ.

Сканирующая строка 4 делится на 5 областей:

Х<1 – вне МУ.

1≤Х≤4 – внутри МУ.

4<Х<6– вне МУ.

6≤Х≤8 – внутри МУ.

Х>8– вне МУ.

Не обязательно, чтобы точки пересечения для строки 4 сразу определялись в фиксированном порядке (слева направо). Например, при задании МУ списком вершин Р15Р1 или списком ребер – последовательными парами вершин Р1Р2 Р2Р3 Р3Р4 Р4Р5 Р5Р1 – для строки 4 точки пересечения с ребрами МУ: 8,6,4,1. Эти точки надо отсортировать в возрастающем порядке по Х: 1,4,6,8.

Для определения цвета пикселей на сканирующей строке рассматриваются пары отсортированных точек пересечений. Для каждого интервала, задаваемого парой пересечений, используется цвет заполняемого МУ. Для интервалов между парами пересечений и крайних от начала строки до первой точки пересечения и от последней точки пересечения до начала строки используется фоновый цвет. Таким образом для строки 4 в фоновый цвет устанавливаются пиксели: от 0 до 1, от 4 до 6, от 8 до 10, а пиксели о 1 до 4 и от 6 до 8 окрашены в цвет МУ.

Точное определение пикселей, которые должны закрашиваться в цвет МУ, требует некоторой осторожности:

П

ересечение сканирующих строк с 1 до 4 с ребрами прямоугольника (ПУ): Х=1 и Х=5. пиксели адресуются координатами своего левого нижнего угла, значит для каждой из этих сканирующих строк, будут закрашиваться пиксели с координатой Х: 1,2,3,4,5.

Результат: закрашиваются пиксели вне ПУ. Модифицируем систему координат сканирующей строки и тесты закраски пикселей.

Пример: сканирующие строки проходят через центр строк пикселей, то есть через середину интервала.

Закрашиваются пиксели, центры которых расположены справа от пересечения внутри интервала.

Горизонтальные ребра не пересекают сканирующие строки и поэтому игнорируются.

Соседние файлы в папке конспект лекций