Чтобы заполнить отдельные области штриховкой, нужно изобразить набор прямолинейных отрезков, после чего получается либо одинарная, либо перекрестная штриховка. Расстояние между линиями штриховки и их наклон можно задавать как параметры таблицы штриховки. Кроме того, узор штриховки можно задать в виде массива узора - набора диагональных прямых линий.
Опорная точка (хр, ур) стартового положения узора заполнения выбирается в любом удобном месте (внутри или за пределами закрашиваемой области). Например, в качестве опорной точки можно выбрать вершину многоугольника, или же задать эту точку в левом нижнем углу рабочей области (ограничивающего окна), которая определяется координатными границами данной фигуры. Для упрощения выбора опорных координат в некоторых пакетах в качестве стартового положения всегда выбирается начало координат окна изображения. Более того, постоянное расположение точки (хр, ур) в начале координат упрощает операции клеточного представления, когда каждый элемент узора переносится в отдельный пиксель. Например, если строки в массиве узора нумеруются снизу вверх, начиная со значения 1, то пикселю с экранными координатами (х, у) присваивается цветовой код точки узора (у mod ny + 1, х mod пх + 1). Здесь через пу и пх обозначено количество строк и количество столбцов массива узора. В то же время, размещение стартового положения узора в начале координат более эффективно при заполнении узором фона экрана, а не отдельных закрашенных областей. Между соседними или перекрывающимися областями, заполненными одинаковым узором, не будет видна граница, разделяющая эти участки. К тому же, перемещение и повторное закрашивание объекта тем же самым узором может привести к смещению соответствующих значений пикселей внутри объекта. Движущийся объект будет казаться прозрачным телом, передвигающимся относительно стационарного узора фона, а не перемещающимся вместе с узором, которым заполнена его внутренняя область.
Рис. 4.19. Объединение элемента узора заполнения с узором фона с помощью логических операций И, ИЛИ и исключающее ИЛИ, а также простой операции замены
ОБЛАСТИ, ЗАПОЛНЕННЫЕ С ИСПОЛЬЗОВАНИЕМ СМЕШИВАНИЯ ЦВЕТОВ
Существует несколько способов сочетания узора заполнения объектов с цветом фона. Объединять узор с цветом фона можно с помощью коэффициента прозрачности, показывающего, насколько фон должен смешиваться с цветом объекта. Кроме того, можно воспользоваться простыми логическими операциями или операциями замены. На рис. 4.19 показано, как с помощью логических операций и операций замены можно объединять элемент узора заполнения размером 2 на 2 с узором фона для бинарной (черно-белой) системы.
Некоторые методы закрашивания с использованием возможности смешивания цветов называются алгоритмами мягкого или бледного окрашивания. Одна из областей применения этих методов заполнения - смягчение цвета заполнения на границах объектов, размытых при сглаживании краев. Другая область применения - возможность повторного закрашивания цветного участка, который изначально был закрашен с помощью полупрозрачной кисти (в таком случае текущим цветом будет смесь цвета кисти и цвета фона “за” этим участком). В любом случае, хотелось бы, чтобы новый цвет заполнения изменялся в пределах данной области точно так же, как и текущий цвет заполнения.