Вывод фигуры (или линии) пера с центром (х, у)

Вывод пиксела (х, у)

 

 

Можно представить себе такой алгоритм, как цикл, в котором определяются координаты каждого пиксела. Этот алгоритм можно модифицировать для вывода толстой линии следующим образом:

 

 

Вместо вывода отдельного пиксела стоит вывод фигуры или линии, соответ­ствующей перу – прямоугольник, круг, отрезок прямой.

Такой подход к разработке алгоритмов толстых линий имеет преимущества и недостатки. Преимущество – можно прямо использовать эффективные ал­горитмы для вычисления координат точек линии оси, например, алгоритмы Брезенхэма. Недостаток – неэффективность для некоторых форм пера. Для перьев, которые соответствуют фигурам с заполнением, количество тактов работы алгоритма пропорционально квадрату толщины линии. При этом большинство пикселов многократно закрашивается в одних и тех же точках (рис. 8).

 

 

Рис. 8

 

Такие алгоритмы более эффективны для перьев в виде отрезков линий. В этом случае каждый пиксел рисуется только один раз. Но здесь важным является наклон изображаемой линии. Ширина пера зависит от наклона (рис. 9).

Очевидно, что горизонтальное перо не может рисовать толстую горизонтальную линию.

Для вывода толстых линий с помощью пера в качестве отрезка линии чаще всего используются отрезки горизонтальной или вертикальной линий, реже – диагональные отрезки под углом 45 градусов. Целесообразность ис­пользования такого способа определяется большой скоростью вывода гори­зонтальных и вертикальных отрезков прямой. Для того чтобы достигнуть минимального количества тактов вывода, толстые линии, которые по наклону ближе к вертикальным, рисуют горизонтальным пером, а пологие линии – вертикальным пером.

 

 

Рис. 9