УДК 655.26;004.92
С. В. Сипайло
Белорусский государственный технологический университет
КОМПЬЮТЕРНЫЙ СИНТЕЗ ВЕКТОРНЫХ ИЗОБРАЖЕНИЙ НА ОСНОВЕ МАТЕМАТИЧЕСКОГО ОПИСАНИЯ КОНТУРОВ В ПОЛЯРНОЙ СИСТЕМЕ КООРДИНАТ
В статье рассмотрен процесс создания векторных изображений, образованных криволинейными контурами, форма которых описывается математической функцией с использованием полярной системы координат. Раскрыта актуальность решаемой задачи, дана оценка базовых инструментов программ векторной графики и отмечена возможность автоматизации синтеза векторных изображений с помощью программ-сценариев.
Использование функции, заданной в полярной системе координат, позволяет математически описать криволинейные объекты разнообразной формы и расширить перечень формируемых узоров. Для синтеза криволинейных контуров в виде векторных объектов необходимо преобразовать исходное функциональное описание контура в совокупность сегментов кривой Безье. В статье предложены формулы для выполнения этого преобразования путем расчета коэффициентов функции Безье. Описана программная реализация синтеза криволинейных объектов на языке VBA в среде программы векторной графики CorelDRAW.
Результаты компьютерного синтеза векторных изображений свидетельствуют об адекватности предложенного математического аппарата для моделирования формы криволинейных объектов. На основе сгенерированных контуров возможно формирование более сложных декоративных узоров по принципам симметрии. Также синтез криволинейных объектов позволяет решать задачи технической графики.
Ключевые слова: контурные узоры, симметрия, векторная графика, синтез изображений.
Для цитирования: Сипайло С. В. Компьютерный синтез векторных изображений на основе математического описания контуров в полярной системе координат // Труды БГТУ. Сер. 4, Принт -и медиатехнологии. 2021. № 2 (249). С. 56-61.
S. U. Sipaila
Belarusian State Technological University
COMPUTER SYNTHESIS OF VECTOR IMAGES BASED ON THE MATHEMATICAL DESCRIPTION OF CONTOURS IN A POLAR COORDINATE SYSTEM
The article describes the process of creating vector images formed by curvilinear contours, the shape of which is described by a mathematical function using a polar coordinate system. The relevance of the problem being solved is revealed, the basic tools of vector graphics programs are assessed, and the possibility of automating the synthesis of vector images using script programs is noted.
Using a function specified in a polar coordinate system makes it possible to mathematically describe curvilinear objects of various shapes and expand the set of generated traceries. To synthesize curvilinear paths in the form of vector objects, it is necessary to transform the original functional description of the path into a set of Bezier curve segments. The article proposes formulas for performing this transformation by calculating the coefficients of the Bezier function. The software implementation of the synthesis of curvilinear objects in the VBA language in the vector graphics program CorelDRAW is described.
The results of computer synthesis of vector images indicate the adequacy of the proposed mathematical apparatus for modeling the shape of curvilinear objects. Based on the generated contours, it is possible to form more complex decorative traceries according to the principles of symmetry. Also, the synthesis of curvilinear objects allows you to solve technical graphics problems.
Key words: contour traceries, symmetry, vector graphics, image synthesis.
For citation: Sipaila S. U. Computer synthesis of vector images based on the mathematical description of contours in a polar coordinate system. Proceedings of BSTU, issue 4, Print- and Mediatechnologies, 2021, no. 2 (249), pp. 56-61 (In Russian).
Введение. В процессе допечатной подготовки полиграфической продукции выполняется ряд процедур по обработке текстово-изобразитель-ной информации, в результате которых создается
цифровой оригинал-макет будущего издания. Для многих видов печатной продукции характерны технические иллюстрации и декоративные изображения, которые в куда большей степени
обладают упорядоченностью элементов по сравнению с художественными образами [1-3]. В частности, упорядоченность элементов декоративных узоров подчиняется законам симметрии [4-7]. Для автоматизации процесса создания таких изображений, а также сокращения технологической цепочки процесса их репродуцирования целесообразно реализовать компьютерный синтез изображений на основе формальных процедур.
Для создания декоративных узоров, образованных криволинейными контурами, используются программные средства векторной графики [2, 8]. При этом базовый инструментарий векторных графических редакторов, таких как CorelDRAW и Adobe Illustrator, не предоставляет возможности создавать контурные узоры сложной формы и состава в автоматическом режиме. В то же время средства автоматизации работы указанных выше программ позволяют существенно расширить базовую функциональность приложения.
Основная часть. В рамках работ по автоматизации процесса синтеза криволинейных объектов в среде CorelDRAW [9-12], проводимых на кафедре полиграфических производств БГТУ, ранее был реализован синтез контурных объектов, описываемых функциями явного вида y = fx) и параметрического вида y = fy(t), x = fX(t). Вместе с тем функциями данного вида способы описания формы криволинейных контурных объектов не исчерпываются. Так, ряд объектов сложной формы, которые имеют несколько точек при одном и том же значении координаты по оси абсцисс, можно описать функцией, заданной в полярной системе координат [13, с. 48]. Такая функция в общем случае имеет вид
r = f (ф),
(1)
где г - расстояние от точки до центра координат; Ф - угол наклона отрезка, соединяющего центр координат и текущую точку.
При необходимости можно рассчитать координаты точек в декартовой системе, используя следующие формулы:
x = r cos (ф), y = r sin (ф).
(2)
Векторные объекты, сгенерированные на основе функций вида (1), могут быть использованы в качестве базового графического элемента для синтеза декоративных изображений со свойствами симметрии, что повысит степень разнообразия формируемых узоров. Также воспроизведение функций в виде векторных контуров соответствующей формы может быть использовано для решения задач технической графики: визуализации формы математически моделируемых объектов, создания технических иллюстраций в учебной и научной литературе, например, построения графиков
функций в литературе по математике. Программы автоматизации математических расчетов типа Mathcad тоже позволяют отобразить функциональную зависимость в графическом виде, однако качество такого графика будет недостаточно высоким для полиграфического репродуцирования. Это связано с тем, что график будет представлен в точечном, а не векторном виде. Ручная же обводка точечных изображений в векторной программе - процесс достаточно трудоемкий, причем конечный результат будет сильно привязан к индивидуальным способностям оператора компьютера. Таким образом, задача синтеза криволинейных векторных контуров, форма которых описывается функцией в полярной системе координат, представляется актуальной.
Для решения задачи синтеза криволинейных объектов нужно учесть тот факт, что для математического описания векторных контуров в графических программах используется функция строго определенного типа - степенная параметрическая функция Безье 3-го порядка [14, с. 300]:
р(() = ро(1 - Г)3 + р^(1 - X)2 + +р23^(1 - X) + р3^ X е [0;1], (3)
где р0 и р3 - координаты крайних точек криволинейного сегмента Безье; р1 и р2 - координаты крайних точек отрезков касательных, проведенных из крайних точек сегмента.
Для двумерной графики выражение (3) можно представить в виде системы двух функций:
х(Х) = Хо(1 - X)3 + Х:3Х(1 - X)2 + + Х23Х2(1 - X) + Х3Х3;
у(Х) = уо(1 - X)3 + у:3Х(1- X)2 + + у23^(1 - X) + уь?.
Аналитический вид функции Безье отличается от исходной функциональной зависимости, поэтому нужно решить задачу кусочной интерполяции исходной функции совокупностью степенных функций Безье, численно совпадающих друг с другом в граничных точках.
Геометрическая интерпретация этой задачи состоит в том, что отрезок исходной функции, подлежащий синтезу, необходимо разбить на несколько участков (сегментов), форма которых может быть близко воспроизведена функцией Безье. Чем большее количество внутренних участков будет выделено, тем точнее воспроизведется форма криволинейного объекта, соответствующего исходному функциональному описанию. Но вместе с точностью воспроизведения будет возрастать и вычислительная сложность решаемой задачи.
Каждый сегмент кривой Безье характеризуется координатами крайних точек Хо, уо и Х3, уь, соответствующих интерполируемой функции, а также координатами Х1, у и Х2, у2 крайних точек касательных отрезков (рис. 1, а), определяющих форму сегмента.
а б
Рис. 1. Сегмент кривой Безье: а - описание формы контура по методу Безье; б - нахождение коэффициентов функции Безье
по внутренним точкам сегмента
Координаты крайних точек сегмента вычисляются с помощью исходной полярной функции по формулам (2). Для нахождения же коэффициентов Х1, у1 и Х2, у2 параметрической функции Безье необходимо, помимо координат крайних точек отрезка кривой, иметь координаты двух точек внутри сегмента (рис. 1, б). Эти внутренние точки можно найти, разделив интервал значений параметра t функции Безье на три равные части. Тогда в качестве промежуточных значений t можно взять значения tв1 = 0,33 и tв2 = 0,66.
В свою очередь между аргументом ф интерполируемой функции и значением параметра t интерполирующей функции Безье можно установить следующую зависимость:
(0 = ^фз - фо) + ф0, ф е [фо; фз],
(5)
где ф0 - значение угла ф, соответствующее первой точке криволинейного сегмента; фз - значение угла ф, соответствующее последней точке криволинейного сегмента.
Рассчитав значения фв1 = ф(1/3) и фв2 = ф(2/3), можно по формулам (1)-(2) найти значения координат внутренних точек сегмента Безье (Хв1, Ув1) и (Хв2, Ув2) в декартовой системе.
Подставив значения координат внутренних точек в (4), получим систему из двух уравнений для каждой из координатных осей. В частности, для оси абсцисс система имеет следующий вид:
Хв1^) = Хо(1 - tвl)3 + ХМ1 - tвl)2 + + Х23tв12(1 - tвl) + xзtвl3;
Хв2(tв2) = Хо(1 - tв2)3 + Х^в2(1 - tв2)2 + + Х23tв22(1 - tв2) + Хзtв2 .
(6)
Для оси ординат уравнения аналогичны. Эти системы уравнений решаются аналитически, в результате чего можно найти
недостающие коэффициенты функции Безье Х1, У1 и Х2, У2.
В общем виде аналитическое решение системы уравнений соответствует следующим выражениям:
Р = ЗДЛ - К2^ъ1)р2;
К^)-К^) .
К 2 (tв2 ) - К2^1)'
рЦ) - Ро • (1 - t)3 - Pзt
(7)
Р2 =
ед =
зt(1 - о
2
(8)
К 2 () =
1 -1
где р - значение искомой координаты по оси Х или У.
С использованием приведенных формул и аналитического выражения исходной функции можно рассчитать все коэффициенты функции Безье для последующего синтеза контура в программе векторной графики.
При практической реализации предложенного способа воспроизведения криволинейных объектов в векторном виде были выбраны следующие исходные функции, описывающие форму объектов в полярной системе координат:
г(ф) = 2 - 4 8т(ф), ф е [о; 2п]; (9)
г(ф) = 1 - 8ш(ф), ф е [о; 2п]; (Ю)
г(ф) = 2ф, ф е [о; 8п]; (11)
г(ф) = 8т(6ф), ф е [о; 2п]; (12)
г(ф) = 8т(7ф/4), ф е [о; 8п]; (13)
г
r (ф) = e
sin(p)
2ео8(4ф) + sin'
Ф е [-8п; 8п];
r (ф) = 2 - 2sin^) + sin^)—
2ф-П
24
VlcosW
sin(ф) +1,4
(14)
(15)
Ф е [0; 2п].
Синтез криволинейных контуров, описываемых функциями (9)-(15), был программно реализован в среде редактора векторной графики CorelDRAW X7 на языке VisualBasic for Applications (VBA).
Для этого в кодах VBA был написан ряд функций и подпрограмм (процедур):
1. Функции (9)—(15), описывающие форму криволинейного объекта в полярных координатах.
2. Функции (2) для перехода из полярной в декартову систему координат.
3. Функция (3) для расчета координат точек кривой Безье.
4. Функции (7), (8) для расчета промежуточных коэффициентов и вычисления координат крайних точек касательных кривой Безье.
5. Подпрограмма, выполняющая преобразование функций вида r = f (ф) в степенные параметрические функции Безье.
6. Подпрограмма синтеза векторных контуров на основе расчетных значений коэффициентов функции Безье.
Примеры синтезированных векторных контуров, соответствующих функциям (9)—(15), приведены на рис. 2.
Рис. 2. Примеры синтезированных векторных контуров
Сгенерированные криволинейные объекты далее могут выступать в качестве базового элемента для формирования симметричных узоров по алгоритму, предложенному автором в [9].
Для создания декоративных узоров на основе базовых криволинейных элементов использовались средства автоматизации симметрических преобразований программы Огпашепйка [15]. На данном этапе работы порядок симметрических преобразований базового элемента и параметры этих преобразований определялись самим пользователем. Примеры узоров, сформированных таким образом, приведены на рис. 3.
В будущем процесс синтеза узоров можно автоматизировать в более высокой степени, написав подпрограммы автоматического синтеза розеток, бордюров и сетчатых узоров на основе псевдослучайных чисел. При этом для исключения заведомо неподходящих вариантов необходимо будет установить лимиты на возможные варианты числовых значений, соответствующих количеству симметрических операций и их параметрам.
Рис. 3. Примеры сетчатых узоров, сформированных в автоматизированном режиме
Значения параметров симметрических операций также следует увязывать с размерами преобразуемого векторного объекта.
Заключение. Результаты программной реализации синтеза контурных изображений свидетельствуют об адекватности предложенного математического аппарата для моделирования формы криволинейных объектов, изначально представленных в полярной системе координат. В будущем процесс создания векторных узоров следует автоматизировать в большей степени,
написав подпрограммы автоматического синтеза розеточных орнаментов и узоров с периодической симметрией. Кроме того, для получения более разнообразных узоров возможна комбинация в одном узоре разных типов функциональных зависимостей, описывающих форму базовых графических элементов. Также следует отметить, что разработанные программные средства синтеза контурных объектов могут быть использованы как для создания декоративно-художественных узоров, так и для решения задач технической графики.
Список литературы
1. Дубина Н. Орнамент в декоративном оформлении книги // КомпьюАрт. 2000. № 8. С. 78-83.
2. Макарова И. О. Компьютерная графика в книжной иллюстрации // Вестник Адыгейского государственного университета. Сер. 2: Филология и искусствоведение. 2011. № 4. С. 182-185.
3. Кузьма А. С., Сипайло С. В. Систематизация и типизация декоративных изображений для автоматизации процесса их создания на стадии допечатной подготовки // Труды БГТУ. Сер. 4, Принт-и медиатехнологии. 2019. № 1. С. 17-23.
4. Шубников А. В., Копцик В. А. Симметрия в науке и искусстве. М.; Ижевск: Ин-т компьютерных исслед., 2004. 560 с.
5. Урманцев Ю. А. Симметрия природы и природа симметрии. М.: Мысль, 1974. 229 с.
6. Лебедева С. Е. Закон симметрии и его универсальный характер // Вестник Псковского гос. ун-та. Сер. Естественные и физико-математические науки. 2007. № 2. С. 107-111.
7. Вейль Г. Симметрия. М.: Наука, 1968. 192 с.
8. Машинное орнаментирование / Т. В. Кочева [и др.]. Улан-Удэ: Изд-во БНЦ СО РАН, 1999. 160 с.
9. Сипайло С. В. Автоматизация синтеза векторных криволинейных контуров со свойствами симметрии в CorelDRAW // Труды БГТУ. 2014. № 9: Издат. дело и полиграфия. С. 3-7.
10. Сипайло С. В. Реализация автоматического синтеза векторных узоров в допечатном процессе на языке VBA // Труды БГТУ. 2015. № 9: Издат. дело и полиграфия. С. 125-129.
11. Сипайло С. В. Синтез векторных симметричных узоров на основе параметрического описания базового элемента // Скориновские чтения 2017: книга в медийном пространстве: к 500-летию белорусского книгопечатания: материалы III Междунар. форума, Минск, 6-7 сент. 2017 г. Минск: БГТУ, 2017. С.258-261.
12. Сипайло С. В. Создание симметричных узоров на основе криволинейных контуров, описываемых непрерывной периодической функцией // Труды БГТУ. Сер. 4, Принт- и медиатехнологии. 2020. № 2. С. 22-26.
13. Воднев В. Т., Наумович А. Ф., Наумович Н. Ф. Основные математические формулы. Минск: Выш. шк., 1988. 269 с.
14. Роджерс Д., Адамс Дж. Математические основы машинной графики. М.: Мир, 2001. 604 с.
15. Сипайло С. В. Создание орнаментальных изображений с помощью встраиваемого программного модуля CorelDRAW // Труды БГТУ. Сер. IX, Издат. дело и полиграфия. 2007. Вып. XV. С. 17-20.
References
1. Dubina N. Ornament in the decorative design of the book. Comp'uArt [CompuArt], 2000, no. 8, pp. 78-83 (In Russian).
2. Makarova I. O. Computer graphics in book illustration. Vestnik Adygeyskogo gosudarstvennogo universiteta [Bulletin of the Adyghe State University], series 2, Philology and Art History, 2011, no. 4, pp. 182-185 (In Russian).
3. Kuz'ma A. S., Sipaila S. U. Systematization and typification of decorative images to automate the process of their creation at the prepress stage. Trudy BGTU [Proceedings of BSTU], series 4, Print- and Mediatechnologies, 2019, no. 1, pp. 17-23 (In Russian).
4. Shubnikov A. V., Koptsik V. A. Simmetriya v nauke i iskusstve [Symmetry in science and art]. Moscow - Izhevsk, Institut komp'yuternykh issledovaniy Publ., 2004. 560 p.
5. Urmantsev Yu. A. Simmetriya prirody i priroda simmetrii [Symmetry of nature and nature of symmetry]. Moscow, Mysl' Publ., 1974. 229 p.
6. Lebedeva S. E. The law of symmetry and its universal character. Vestnik Pskovskogo gosudarst-vennogo universiteta [Bulletin of Pskov State University], series Natural and Physical-Mathematical Sciences, 2007, no. 2, pp. 107-111 (In Russian).
7. Weyl H. Simmetriya [Symmetry]. Moscow, Nauka Publ., 1968. 192 p.
8. Kocheva T. V., Chelpanov I. B., Nikiforov S. O., Ayusheva A. O. Mashinnoye ornamentirovaniye [Machine ornamentation]. Ulan-Ude, BNC SO RAN Publ., 1999. 160 p.
9. Sipaila S. U. Automation of synthesis of vector curved contours with symmetry properties in CorelDRAW. Trudy BGTU [Proceedings of BSTU], 2014, no. 9: Publishing and Printing, pp. 3-7 (In Russian).
10. Sipaila S. U. Implementation automatic synthesis of vector patterns in prepress in language VBA. Trudy BGTU [Proceedings of BSTU], 2015, no. 9: Publishing and Printing, pp. 125-129 (In Russian).
11. Sipaila S. U. Synthesis of symmetric vector traceries based on the parametric description of the base element. Materialy III Mezhdunar. foruma "Skorinovskiye chteniya 2017: kniga v mediynom prostranstve: k 500-letiyu belorusskogo knigopechataniya" [Materials of the III International Forum "Skorinov's Readings 2017: a book in the media space: to the 500th anniversary of Belarusian printing"]. Minsk, 2017, pp. 258-261 (In Russian).
12. Sipaila S. U. Create symmetrical traceries based on curved paths described by a continuous periodic function. Trudy BGTU [Proceedings of BSTU], series 4, Print- and Mediatechnologies, 2020, no. 2, pp. 2226 (In Russian).
13. Vodnev V. T., Naumovich A. F., Naumovich N. F. Osnovnyye matematicheskiye formuly [Basic mathematical formulas]. Minsk, Vysh. shkola Publ., 1988. 269 p.
14. Rodzhers D., Adams Dzh. Matematicheskiye osnovy mashinnoy grafiki [Mathematical Elements for Computer Graphics]. Moscow, Mir Publ., 2001. 604 p.
15. Sipaila S. U. Creation of ornamental images using embedded software module CorelDRAW. Trudy BGTU [Proceedings of BSTU], series IX, Publishing and Printing, 2007, issue XV, pp. 17-20 (In Russian).
Информация об авторе
Сипайло Сергей Владимирович - кандидат технических наук, доцент, доцент кафедры полиграфических производств. Белорусский государственный технологический университет (220006, г. Минск, ул. Свердлова, 13а, Республика Беларусь). E-mail: svsip@yandex.by
Information about the author
Sipaila Siarhei Uladzimiravich - PhD (Engineering), Associate Professor, Assistant Professor, the Department of Printing Production. Belarusian State Technological University (13a, Sverdlova str., 220006, Minsk, Republic of Belarus). E-mail: svsip@yandex.by
Поступила 06.09.2021