ОПЦИИ ПЕРЬЕВ И КИСТЕЙ

В некоторых пакетах, особенно в системах рисования и черчения, можно непосредственно выбирать различные виды перьев и кистей. К опциям этой категории относятся форма, размер и узор пера или кисти. Некоторые примеры формы перьев и кистей показаны на рис. 4.7. Эти формы можно записывать в пиксельную маску, которая служит для определения массива координат пикселей, которые должны изображаться на траектории прямой линии. Например, след от прямоугольного пера можно реализовать с помощью маски, показанной на рис. 4.8, перемещая центр (или один из углов) маски по траектории прямой линии, как показано на рис. 4.9. Чтобы избежать повторного занесения пикселей в буфер кадра, можно просто накапливать горизонтальные полосы, появляющиеся в каждом положении маски, и следить за координатами х начала и конца полосы в каждой строке развертки.

Прямые линии, изображаемые с помощью перьев (или кистей) разной формы, могут быть различной ширины, если изменять размер маски. Например, показанную на рис 4.9 линию, полученную с помощью прямоугольного пера, можно сделать з^же, уменьшив размеры маски до 2 на 2, или шире, увеличив маску до 4 на 4. Кроме того, можно изображать прямые линии с выбранным узором, накладывая узор на маску пера или кисти.

Формы перьев и кистей для изображения прямых линий

Рис. 4.7. Формы перьев и кистей для изображения прямых линий

Пиксельная маска (панель а) для прямоугольного пера и связанный с ней массив пикселей (панель 6), который изображается при размещении центра маски в заданных положениях пикселей

Рис. 4.8. Пиксельная маска (панель а) для прямоугольного пера и связанный с ней массив пикселей (панель 6), который изображается при размещении центра маски в заданных положениях пикселей

Изображение прямой линии с помощью пера, форма которого показана на рис. 4.8

Рис. 4.9. Изображение прямой линии с помощью пера, форма которого показана на рис. 4.8

АТРИБУТЫ КРИВЫХ

Параметры атрибутов кривых линий не отличаются от параметров отрезков прямых. Изображаемые кривые могут быть различных цветов, ширин, могут иметь различные штрихпунктирные узоры, доступны также и возможности рисования пером или кистью. Методы адаптации алгоритмов для построения кривых линий и возможности выбора атрибутов такие же, как и при построении прямых линий.

Растровые кривые различной ширины можно изображать с помощью метода вертикальных или горизонтальных полос пикселей. Там, где величина тангенса угла наклона кривой меньше или равна 1,0, откладываются вертикальные полосы; там, где эта величина превышает 1,0, откладываются горизонтальные полосы. На рис. 4.10 данный метод проиллюстрирован для изображения дуги окружности, ширина которой равна 4, в первом квадранте. Благодаря симметрии построена часть окружности из вертикальных полос в октанте от х - 0 до х = у, затем мы отразили положения пикселей относительно прямой у = х и получили оставшуюся часть кривой. Участки окружности в остальных квадрантах находятся путем отражения положений пикселей из первого квадранта относительно координатных осей. Толщина линий, изображаемых таким способом, является функцией угла наклона кривой. В тех местах, где величина тангенса угла наклона равна 1, окружности, эллипсы и другие кривые кажутся тоньше.

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


⇐ вернуться назад | | далее ⇒