ПОСТРОЧНОЕ ЗАКРАШИВАНИЕ ФИГУР С КРИВОЛИНЕЙНЫМИ ГРАНИЦАМИ

Поскольку фигура с криволинейными границами описывается нелинейными уравнениями, ее построчное заполнение, как правило, требует больше времени, чем построчное заполнение многоугольника. Здесь можно воспользоваться общим методом, подробно описанным в разделе 4.10, но при этом вычисление точек пересечения с границами будет выполняться с использованием уравнений кривых, а тангенс угла наклона границы будет постоянно меняться, поэтому прямой метод вычисления прироста станет невозможным.

Для таких простых кривых, как окружность или эллипс, можно воспользоваться методами закрашивания, аналогичными используемым для выпуклых многоугольников. Каждая строка развертки, которая проходит через внутреннюю область окружности или эллипса, имеет только две точки пересечения с границами этого объекта. Чтобы найти эти точки на границе окружности или эллипса методом средней точки, вычисляется прирост. Затем мы просто закрашиваем горизонтальные полосы пикселей между этими двумя точками пересечения. Для сокращения объема вычислений используется симметрия квадрантов (для окружности - октантов).

Закрашивание внутренней области, ограниченной эллиптической дугой

Рис. 4.25. Закрашивание внутренней области, ограниченной эллиптической дугой Аналогичными методами можно воспользоваться для создания закрашенной фигуры с помощью сечения кривой. Например, область, ограниченную эллиптической дугой и прямолинейным отрезком (рис. 4.25), можно закрасить, объединив процедуры для кривых и прямых линий. При возможности используются свойства симметрии и инкрементные расчеты, что позволяет уменьшить количество вычислительных операций.

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

СПОСОБЫ ЗАПОЛНЕНИЯ ФИГУР С НЕПРАВИЛЬНЫМИ ГРАНИЦАМИ

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

Неправильные участки можно закрашивать одним цветом или цветным узором. Для заполнения узором накладывается цветовая маска, о чем говорится в разделе 4.9. При обработке каждого пикселя этой области его цвет определяется по соответствующему значению наложенного шаблона.

АЛГОРИТМ ГРАНИЧНОГО ЗАПОЛНЕНИЯ

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


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