Автоматизация синтеза векторных криволинейных контуров со свойствами симметрии в CorelDRAW

ТЕХНОЛОГИЯ ПОЛИГРАФИЧЕСКИХ ПРОИЗВОДСТВ

УДК 655.26;004.92

С. В. Сипайло, кандидат технических наук, доцент

АВТОМАТИЗАЦИЯ СИНТЕЗА ВЕКТОРНЫХ КРИВОЛИНЕЙНЫХ КОНТУРОВ СО СВОЙСТВАМИ СИММЕТРИИ В CORELDRAW

В статье рассмотрены вопросы синтеза векторных изображений криволинейной формы. Разработан обобщенный алгоритм синтеза симметричных векторных изображений сложной формы и состава. Решены задачи определения параметров кривой Безье и генерации векторного контура на основе его функционального описания. Рассмотрена программная реализация синтеза векторных изображений. Указана область практического применения работы, выделены основные направления ее развития.

In article questions of synthesis of vector images of the curvilinear form are considered. The generalized synthesis algorithm of symmetric vector images of complex shape and composition is developed. Are solved tasks of determining the parameters of the Bezier curve and generation of the vector shape on the basis of its functional description. Program realization of synthesis of vector images is described. Characterized the area of practical application work. The basic directions of its extension are allocated.

Введение. В оформлении книжной и листовой полиграфической продукции находят применение разного рода декоративные изображения (народные орнаменты, абстрактные узоры), которые имеют сложную форму и симметрию. Для цифрового описания графических объектов с ярко выраженными границами и контрастной цветовой гаммой наиболее эффективно использовать метод векторной графики. Этот метод обеспечивает высокое качество и компактность описания контурного объекта с возможностью его трансформирования без потери деталей. Современные программы векторной графики позволяют создавать сложные криволинейные объекты, однако степень автоматизации этого процесса зачастую оказывается невысокой. При этом геометрическая форма и симметрия векторных узоров, используемых в графическом оформлении, поддаются точному математическому описанию, что создает предпосылку для алгоритмизации процесса их синтеза и сокращения ручной работы.

В рамках предыдущих работ в области синтеза орнаментальных изображений [1, 2] был сформулирован общий способ и разработаны специфические алгоритмы синтеза изображений белорусских орнаментов, учитывающие их особенности по таким признакам, как симметрические свойства, форма и состав орнаментальных узоров. При этом синтез изображения осуществлялся на основе первичного графического элемента орнамента (базового элемента).

Вместе с тем характер и содержание полиграфической продукции могут потребовать использования других узоров, не относящихся к

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

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

Обобщенный алгоритм синтеза изображений путем симметрических преобразований. Предложенный в предыдущих работах [1, 2] способ синтеза орнаментальных изображений основан на представлении орнамента в виде сложной симметричной системы, состоящей из нескольких подсистем, каждая из которых в общем случае обладает своей группой симметрии и синтезируется отдельно. Синтез подсистем осуществляется на основе базового графического элемента простой формы путем его дублирования и геометрического преобразования с помощью движений из группы симметрии создаваемого узора. В свою очередь, созданный симметричный объект может выступать в качестве нового базового элемента для формирования более сложной симметричной фигуры. После

синтеза подсистем симметричного изображения они объединяются в более сложную систему. При этом представлению в виде совокупности подсистем подлежат как розеточные узоры, так и узоры бордюрного и сетчатого типов.

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

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

Исходя из вышесказанного, на основе рассмотренного способа формирования изображений можно составить обобщенный алгоритм синтеза симметричных геометрических узоров, являющих собой сложную систему из нескольких подструктур, каждая из которых построена на базе векторного объекта определенной формы (базового элемента). Составленный алгоритм приведен на рис. 1.

Синтез симметричных векторных объектов по данному алгоритму предполагает наличие базового графического элемента, подлежащего ряду симметрических преобразований. В случае белорусских народных орнаментов форма первичного элемента тривиальна (квадрат) и для его создания не требовалось разработки дополнительных средств автоматизации. В общем же случае при создании векторного симметричного узора форма базового элемента может быть более сложной.

Воспроизведение криволинейной формы контура с помощью кривой Безье. Для описания криволинейных векторных контуров в современных программах векторной графики используется многочлен Безье [3]. Метод построения кривой Безье основан на использовании пары отрезков касательных, проведенных к сегменту контура в его окончаниях (рис. 2, а). Форма сегмента в этом случае определяется размерами и положением касательных. В математическом виде кривая третьего порядка по методу Безье описывается следующей параметрической функцией:

p(t) = po(1 - t)3 + pi3t(1 - t)2 + +P23t2(1 - t) + P3t3; 0 < t < 1,

крайних точек отрезков касательных, проведенных из крайних точек сегмента.

В частности для двумерной графики кривая Безье описывается двумя параметрическими функциями

x(t) = x0(1 - t)3 + x13t(1 - t)2 + + x23t2(1 - t) + x3t3;

y(t) = yo(1 - t)3 + J13t(1 - t)2 + + y23t2(1 - t) + y3t3.

где р0 и р3 — координаты крайних точек криволинейного сегмента; р1 и р2 — координаты

Рис. 1. Обобщенный алгоритм генерации симметричных геометрических узоров

fe Уд

> X

х0 х(/,) x(t2) х3

а б

Рис. 2. Сегмент кривой Безье: а — описание формы контура по методу Безье; б — нахождение коэффициентов кривой Безье

Для визуализации кривой Безье каждое уравнение решается в цикле с вычислением горизонтальных и вертикальных координат точек кривой, соединяющей крайние точки сегмента. Значение ( на протяжении цикла вычислений изменяется в пределах от 0 до 1.

Таким образом, для описания формы криволинейного сегмента по методу Безье в двумерном пространстве требуются значения 8 коэффициентов, соответствующих координатам 4 точек.

В то же время форма графического объекта, подлежащего воспроизведению в виде векторного изображения, может изначально описываться другим образом, например функциональной зависимостью вида у = Ах).

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

Чтобы рассчитать коэффициенты х1, у! и х2, у2 параметрической функции Безье, необходимо, кроме координат крайних точек отрезка кривой, иметь значения функции в двух точках внутри сегмента.

Если разделить область значений параметра ( на три части, то в качестве промежуточных значений ( можно взять значения (1 = 0,33 и (2 = 0,66. На их основе необходимо найти значения параметрических функций х(() и у((). Для нахождения этих значений требуется преобразовать интерполируемую функцию Д(х) к параметрическому виду

* = fx (t );

y=fv (t ) = f ( fx (t )).

Для решения этой задачи было принято решение в качестве параметрической функции /х(() использовать линейную зависимость между х и параметром которая имеет следующий вид:

fx (t) = *0 + (*3 - *o)t.

Рассчитав таким образом значения х для (1 и (2, можно с помощью исходной функции Д(х) найти значения у, соответствующие (1 и (2.

Имея значения параметрических функций в двух точках и подставив их в формулу Безье (2), можно для каждой из двух координатных осей решить систему из двух уравнений относительно искомых коэффициентов функции Безье х1, х2 и у1, у2 соответственно.

Системы уравнений для координатных осей х и у имеют соответственно следующий вид:

x(tj) = x0(1 - tj)3 + Xj3ti(1 - tj)2 +

+ X23ti2(1 - ti) + X3ti3;

X(t2) = Xo(1 - t2)3 + Xj3t2(1 - t2)2 +

+ X23t22(1 - t2) + X3t23

Дх^)) = Уо(1 - ¿1)3 + УМ1 - ¿1)2 +

+ У23^2(1 - ¿1) + узкъ;

3 2 (6) М*2)) = Уо(1 - ¿2)3 + У 13(2(1 - ¿2)2 +

+ У23(22(1 - ¿2) + У3(23.

В результате аналитического решения приведенных систем уравнений были получены следующие равенства:

и

Pi = Ki

P2 =

K2

где р — значение искомой координаты по оси х или у.

При этом

Ki(t ) =

p(t) - Po (1 -1)3 - p3t3;

K 2 (t ) =

3t(1 -1)2

t

1 -1

Проверка правильности аналитического решения была выполнена в программе Mathcad путем сопоставления графического представления интерполируемой зависимости fx) и интерполирующего многочлена Безье третьей степени, коэффициенты которого были рассчитаны по формулам (7) и (8).

Программная реализация синтеза векторных изображений. Предложенное решение задачи воспроизведения функциональной зависимости вида fx) кривой Безье было реализовано на языке VBA в среде редактора векторной графики CorelDRAW.

Код написанной программы включает функции для расчета промежуточных коэффициентов, а также несколько вариантов функций fx), подлежащих воспроизведению в виде кривой Безье.

Также в состав программы входят следующие процедуры (подпрограммы):

1. Процедура segment. Выполняет расчет координат касательных для сегмента кривой Безье. Исходными параметрами являются координаты крайних точек сегмента кривой по оси абсцисс x0, x3.

2. Процедура curve_b. Выполняет синтез векторного контура, форма которого с заданной точностью соответствует математической функции fx). Входными параметрами процедуры являются координаты крайних точек векторного контура по оси x и точность его воспроизведения п. Точность задается количеством сегментов, из которых будет состоять генерируемый векторный контур.

Для удобства ввода исходных данных создано окно диалога. Оно содержит следующие элементы интерфейса:

1. Текстовые поля для ввода параметров кривой Безье (точность построения и координаты крайних точек отрезка).

2. Раскрывающийся список для выбора математической функции из нескольких вариантов.

3. Кнопки для синтеза контура, удаления сгенерированного объекта, сброса значений параметров до значений, принятых по умолчанию, и

выхода. Для перечисленных кнопок написаны процедуры обработки событий, которые запускаются при нажатии.

Синтез векторных контуров в программе осуществлялся на основе следующих математических функций:

f ( x) =

2 + 9x - 0,5x2 + 0,10,05x + x3

60

f ( x) = 3 sin( x) + x + 3;

f ( x) =

e0 5x - x2 + 25

10

f ( x) =

e05x - 1,3x2 + 18cos(2x) + 50 10 '

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

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

Сформированный таким образом векторный объект может служить основой (базовым элементом) для синтеза симметричных векторных изображений по приведенному выше алгоритму (рис. 1).

Алгоритм был реализован в автоматизированном режиме с использованием универсальных инструментов автоматизации симметрических преобразований, входящих в состав программы синтеза белорусских орнаментов Огпа-тепйка [4]. При этом конкретный перечень и порядок преобразований базового графического объекта определялся пользователем, а параметры симметрических преобразований задавались в диалоговом режиме. В качестве базового элемента выступал векторный объект, сгенерированный на основе математической функции. Примеры разнообразных по форме узоров, сформированных на основе одного и того же базового элемента, представлены на рис. 3.

I I ! л/41

I____!

Базовый объект

Рис. 3. Примеры полученных симметричных узоров

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

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

В качестве направлений развития работы можно выделить следующее:

1) повышение степени автоматизации программных средств синтеза путем автоматического определения базового элемента, состава операций, порядка их выполнения, а также параметров преобразований;

2) учет цветовых характеристик формируемых узоров на уровне подсистем и реализация цветовых перестановок, сопряженных с геометрическими преобразованиями, т. е. формирование векторных узоров с цветной симметрией;

3) расширение перечня функциональных зависимостей, используемых для генерации криволинейных векторных изображений;

4) использование средств автоматизации синтеза кривых Безье не только для художественного оформления, но и для технической графики.

Литература

1. Сипайло С. В., Долгова Т. А. Группы симметрии как основа автоматизированного синтеза векторных орнаментальных изображений // Труды БГТУ. Сер. IX, Издат. дело и полиграфия. 2008. Вып. XVI. С. 11-14.

2. Сипайло С. В., Долгова Т. А. Генерация симметричных узоров на основе базового графического элемента // Труды БГТУ. Сер. IX, Издат. дело и полиграфия. 2010. Вып. XVIII. С. 79-83.

3. Машинное орнаментирование / Т. В. Ко-чева [и др.]. Улан-Удэ: Изд-во БНЦ СО РАН, 1999. 160 с.

4. Сипайло С. В. Создание орнаментальных изображений с помощью встраиваемого программного модуля CorelDRAW // Труды БГТУ. Сер. IX, Издат. дело и полиграфия. 2007. Вып. XV. С. 17-20.

Поступила 18.03.2014