Существует две процедуры закрашивания участков рисунка в растровых системах, если описание закрашенной области переведено в координаты пикселей. В одной процедуре вначале определяются интервалы перекрытия для строк развертки, которые пересекают эту область. Затем пикселям, попадающим в эти интервалы перекрытия, присваиваются значения, соответствующие узору заполнения. Другой способ заполнения участков рисунка - начать с заданной точки, находящейся внутри этой области, и “зарисовывать пространство” наружу от этой точки, пока не дойдем до того места, где выполняются заданные граничные условия. Метод строк развертки, как правило, применяется для таких простых фигур, как окружности или области с ломаными границами, также этот метод используется в универсальных графических пакетах. Алгоритмы закрашивания, в которых применяется начальная внутренняя точка, полезны при закрашивании участков с более сложными границами, а также в интерактивных системах рисования.
СТИЛИ ЗАКРАШИВАНИЯ
Основной атрибут закрашенных фигур, предлагаемый в универсальной графической библиотеке, - это стиль изображения внутренней области. Данную область можно заполнить одним цветом или заданным узором, или же оставить ее “чистой”, показав только границы фигуры. Названные стили заполнения показаны на рис. 4.17. Кроме того, можно закрашивать выбранные участки сцены с помощью различных видов кистей, комбинаций смешивания цветов или текстур. К числу других опций относятся описания границ закрашенных фигур. Границы многоугольников можно показать другим цветом, они могут иметь разную ширину и выполняться разным стилем. Кроме того, можно выбирать различные атрибуты изображения передней и задней сторон многоугольной области.
Рис. 4.17. Основные стили закрашивания многоугольников Узоры заполнения могут задаваться в форме прямоугольных цветовых массивов, содержащих различные цвета для различных элементов массива, или битовых массивов, в которых указывается, какие относительные положения следует изображать одним выбранным цветом. Массив, с помощью которого описывается узор заполнения, называется маской, и он применяется к области изображения. В некоторых графических системах возможен выбор произвольного исходного положения, с которого маска многократно повторяется в горизонтальном и вертикальном направлениях до тех пор, пока вся область изображения не будет заполнена неперекрывающимися копиями узора. В тех местах, где на заданные закрашенные участки накладывается узор, из массива узора определяется, какие пиксели следует изображать определенным цветом. Данный процесс заполнения области с помощью прямоугольного шаблона называется клеточным заполнением, а прямоугольный узор заполнения иногда называют ячейкой узора. Система может содержать предопределенные узоры заполнения, например, узор в виде штриховки, показанный на рис. 4.18.
Рис. 4.18. Области, заполненные узором штриховки Чтобы заполнить объект узором, нужно определить места, где узор накладывается на строки развертки, которые пересекают закрашенную область. Начиная с заданного стартового положения, прямоугольные шаблоны накладываются вертикально по строкам развертки и горизонтально по положениям пикселей в строках развертки. Каждое повторение массива узора выполняется через промежутки, зависящие от ширины и высоты маски. В тех местах, где узор накладывается на закрашенную область, цвет пикселей устанавливается согласно значениям, записанным в маске.