Шаг 46.
Основы компьютерной графики. Базовые растровые алгоритмы. Стиль линии (перо). Алгоритмы вывода пунктирной линии

    На этом шаге мы рассмотрим алгоритм вывода такой линии.

    Алгоритм для рисования тонкой пунктирной линии можно получить из алгоритма вывода тонкой непрерывной линии:

   .   .   .   .
   Вывод пикселя (х, у) 
   .   .   .   .
заменой процедуры вывода пикселя более сложной конструкцией:
   .   .   .   .
   Проверка значения счетчика С :
     Если С удовлетворяет некоторым условиям, то 
       вывод пикселя (х, у)
     Значение С увеличивается на единицу
   .   .   .   .
В таком алгоритме используется новая переменная (С) - счетчик пикселей линии. Если значение С удовлетворяет некоторому логическому условию, то рисуется пикселm заданного цвета с текущими координатами (х, у). Логическое условие будет определять стиль линии. Например, если условием будет четность значения С, то получим линию из одиночных точек. Для рисования пунктирной линии можно анализировать остаток от деления С на S. Например, если рисовать пиксели линии только тогда, когда С mod S < S/2, то получим пунктирную линию с длиной штрихов S/2 и с шагом S.

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

    На следующем шаге мы рассмотрим вывод толстой пунктирной линии.




Предыдущий шаг Содержание Следующий шаг