заливка {floodfill);

закраска при построчном сканировании {scan-line fill);

оценка четности-нечетности перехода (odd-even fill).

7.10. Растровое преобразование многоугольников

7.10.5. Заливка

Образ контура многоугольника в буфере кадра можно сформировать, обрабатывая отдельные прямолинейные участки контура по алгоритму Брезенхэма. Предположим, что изображение состоит только из двух цветов: цвета фона (белый) и цвета переднего плана

(черный). Образ контура многоугольника в буфере кадра формируется цветом переднего плана (рис. 7.52). Если известна какая-либо точка (х,у), лежащая внутри контура многоугольника- точка-источник (родник),- то окружающие ее точки можно просматривать рекурсивно и окрашивать их в цвет переднего плана, если точка не принадлежит ребру контура. Алгоритм заливки можно представить на языке описания алгоритмов (псевдокоде), подразумевая, что функция геас!_р1хе1 () возвращает код цвета, ранее назначенный указанному пикселю следующим образом: Рис. 7.52. Образ контура многоугольника

Существует множество вариантов этого алгоритма, не использующих рекурсию. Один из таких способов предусматривает построчное сканирование.

7.10.6. Алгоритмы заполнения построчным сканированием Потенциальное достоинство алгоритмов построчного сканирования состоит в том, что они позволяют при соответствующей реализации формировать коды засветки пикселей синхронно с их отображением на экране. Рассмотрим многоугольник на рис. 7.53, на котором показана одна строка растра. Пользуясь сформулированным ранее правилом четности-нечетности для определения принадлежности точки внутренней области многоугольника, среди пикселей анализируемой строки можно выделить три группы или участка (spans) таких пикселей. Обращаю ваше внимание на то, что для определения освещенности и глубины каждый участок можно обрабатывать независимо. Эта стратегия используется в некоторых вариантах аппаратной реализации алгоритма построчного сканирования, которые предусматривают параллельную работу нескольких процессоров обработки участков. В рассматриваемом простом примере равномерной закраски внутренней области после выявления интересующих нас участков все входящие в него пиксели закрашиваются одним цветом.


⇐ Предыдущая| |Следующая ⇒