ЭЛЕМЕНТЫ ФРАКТАЛЬНОЙ ГРАФИКИИ И ИХ ИСПОЛЬЗОВАНИЕ ПРИ ЧТЕНИИ СПЕЦИАЛЬНЫХ УЧЕБНЫХ ДИСЦИПЛИН О.В. Дубровина, Ю. Э. Ахтямова Белорусский государственный университет Минск, Беларусь E-mail: [email protected] Работа посвящена использованию программного генератора UltraFractal для построения элементов фрактальной графики. Приведены примеры построения и настройки конкретных изображений. Ключевые слова: фрактал, фрактальное множество, самоподобные структуры, компьютерная графика, Ultra Fractal. Понятие фрактала впервые было введено французским и американским математиком Бенуа Мандельбротом в 1975 году для обозначения нерегулярных, но самоподобных структур, которыми он занимался. Появление фрактальной геометрии обычно связывают с выходом его книги «Фрактальная геометрия природы» (см. [1]). В этой работе Мандельбротом были обобщены в единую систему труды и других ученых, работавших над самоподобными структурами в конце 19-го – начале 20-го веков, таких как А. Пуанкаре, П. Фату, Г. Жюлиа, Г. Кантор, Ф. Хаусдорф. Под фракталом (лат. fractus – дробленный, сломанный, разбитый) понимается сложная геометрическая фигура, обладающая свойством самоподобия, то есть составленная из нескольких частей, каждая из которых подобна всей фигуре в целом. Согласно [2] фрактальные множества F имеют тонкую структуру, то есть содержит произвольно малые масштабы; эти множества являются нерегулярными, что делает невозможным традиционное геометрическое их описание. Однако в ряде случаев множество F может быть задано рекурсивно, что значительно упрощает алгоритмизацию его построения. Характерной особенностью фрактальных множеств F является свойство самоподобия, которое может быть явным, приближенным или статистическим. Как правило, фрактальная размерность F больше топологической. Из возможности рекурсивного задания фрактального множества следует, возможность его программно-алгоритмической его построения. Таким образом, появление специализированного программного обеспечения для генерации фрактальной графики или дополнительных модулей к программам иного назначения было предопределено. 1 В 80-х годах 20 века К. Масгрейв положил автоматической визуализации фракталов начало алгоритмической визуализации искусству, работая над методами реалистичных изображений с помощью фракталов [3]. После чего, на основе его алгоритмов генерации изображений появилась программа Bryce, предназначенная для трехмерного моделирования, рендеринга и анимации фрактальных пейзажей. В настоящее время существует множество программных генераторов фракталов, позволяющих как строить либо модифицировать традиционные множества, применять различные алгоритмы раскраски, так и создавать новые фрактальные структуры, задавая их аналитически либо рекуррентно. В качестве примера подобных инструментальных средств рассмотрим программный генератор фракталов Ultra fractal [4], являющийся одной из лучших программ для создания уникальных фрактальных изображений. Пакет имеет удобный интерфейс пользователя и позволяет создавать множество разнообразных фрактальный конструкций. Важным является и наличие большого количества постоянно обновляемых учебных материалов и поддерживаемого производителем учебного портала. В качестве дополнительной привлекательной опции отметим возможность анимирования элементов фрактальной графики. Полученные изображения могут быть экспортированы в распространенные форматы растровой графики, либо – при использовании элементов анимации – в формат avi. Даже для начинающего пользователя создание простейших фрактальных изображений не представляет собой особой сложности. При этом могут быть использованы как встроенные в пакет стандартные формул, так формулы, содержащие с модифицированные параметры. Настройка изображения проводится с помощью градиентов и режимов смешивания слоев. Кроме этого программа содержит также такие традиционные для графических пакетов инструменты, как маски прозрачности, масштабирование, трансформация, зеркальное отражение, калейдоскоп. Для подготовленных пользователей предлагается встроенный текстовый редактор с поддержкой базовых шаблонов, основанных на стандартных конструкциях языка программирования фрактальных формул. Ultra Fractal позволяет подключаться к другим компьютерам в локальной сети или Интернете, чтобы ускорить математические вычисления и процесс ренденринга. Программа автоматически распределяет наиболее оптимальным образом вычислительную нагрузку между подключенным компьютерами. Ultra Fractal также в полной мере использует возможности многопроцессорных и многоядерных систем. Таким образом, программный пакет Ultra Fractal обеспечивает такие возможности, как: 1. Создание собственных фракталов, алгоритмов закраски и геометрических преобразований с помощью формул. Встроенные язык формул поддерживает комплексные числа, массивы, переменные типы и цветовую арифмети2 ку. В программу включен редактор формул с подсветкой синтаксиса и оптимизирующий формульный компилятор. 2. Создание и комбинирование слоев (по аналогии с графической системой Adobe Photoshop), которые могут содержать изображения или маски изображений. 3. Использование редактора градиентов, позволяющее легко создавать различные цветовые закраски и эффекты прозрачности. 4. Отсутствие ограничений по глубине масштабирования фрактала. 5. Высококачественный рендеринг изображений фракталов и сохранение его в форматах JPEG, Photoshop, TIFF, PNG, Windows BMP и Targa. 6. Создание анимированных изображений по параметрам фрактала с произвольной длительностью и частотой кадров, сохранение их в виде последовательности изображений или видеоклипа в формате AVI. 7. Организация и упорядочивание файлов фракталов, двусторонний обмен с базой данных фракталов в Интернете, содержащей несколько тысяч объектов. 8. Полная 2000/XP/Vista/7/8. поддержка операционной системы Windows 9. Наличие подробной справочной система (в форматах CHM и PDF, также доступна в Интернете) и интегрированных учебников, помогающих освоить как базовые, так и расширенные функции программы. 10. Поддержка распределенных вычислений. Примеры использования стандартных инструментов генератора Ultra Fractal приведены на рисунках 1 и 2. Для построения пользовательских фигур в программе Ultra Fractal существуют три типа вычислительных алгоритмов: фрактальные формулы; окраска алгоритмов; формулы трансформаций. Эти алгоритмы реализованы в виде специализированных модулей, которые размещаются в текстовых файлах с расширениями *.umf для формулы фрактала, *.ucl для файла окраски, и *.uxf для файла трансформации. 3 Рис. 1 – Интерфейс программы Ultra Fractal Рис. 2 – Фрактал Мандельброта, сгенерированный в программе Ultra Fractal 4 Рассмотрим модельный пример построения пользовательского фрактала. В качестве базового фрактала был выбран фрактал Жюлиа, Множество Жюлиа J f определяется как граница множества точек, стремящихся к бесконечности при итерировании комплексной аналитической функции f(z): J f z : f n z , n , где f n z – n-я производная функции комплексного аргумента f z . В построении фрактала для первого модуля, реализованного в графической системе Ultra Fractal, был выбран один из видов фрактала Жюлиа – Round Julia, Для реализации был создан дополнительный программный модуль, результатом выполнения которого является фрактал Round Julia, приведенный на рисунке 3. В результате было задано исходное расположение базового рисунка – цветов. Рис. 3 – Фрактал Round Julia Далее построенный фрактал Round Julia был подвергнут дополнительной обработке в пакете Ultra Fractal, масштабирован, и раскрашен стандартным колорирующим алгоритмом пакета ldm-Thingamajigs, благодаря которому у «цветов» появились лепестки. Действия заключались в настройке 15 слоев изображения в различных режимах и градиентах, которые были наложены друг на друга. На рис. 4 представлен итоговый результат 5 Рис 4. – Модифицированный фрактал Round Julia В качестве другого примера построения и раскраски фракталов в пакете Ultra Fractal, рассмотрим модификацию фрактала Ньютона, задаваемого в общем случае рекуррентной формулой 6 Z i 1 Z i pZ i , p' Z i где z – произвольная точка комплексной плоскости, которая является начальной в алгоритме построения фрактала Ньютона, z i – i-тое приближение комплексной точки z , z i 1 – i+1-ое приближение комплексной точки Z , p z – заданная аналитическая функция, которая определяет конфигурацию фрактала, p z i – ее значение в точке z i , p' z i – значение производной функции p z в точке z i . В настоящем примере в качестве функции p z был выбран многочлен третей степени p z z 3 1. Таким образом формула для задания фрактальной структуры имеет вид Z i 1 Z i z i3 1 z i2 . На рисунке 5 приведен фрактал Ньютона без дополнительных модификаций. Рис. 5 – Фрактала Ньютона Программный модуль для построения модифицированного фрактала Ньютона построения был реализован также в графической системе Ultra Fractal. В качестве раскраски был использован алгоритм «Ляпунов», который вычисляет 7 экспоненту Ляпунова для множества Мандельброта. Результат исполнения программного модуля представлен на рис. 5 Рис. 5 – Модификация и раскраска фрактала Ньютона Приведенные примеры показывают, что фрактальные изображения являются эффектными элементами компьютерной графики, при этом имеющими эффективные алгоритмы реализации. В настоящее время эти элементы широко используют в видеоинсталляциях, моушн-дизайне, графическом дизайне, при оформлении помещений и в декоративном искусстве. Неоднократно было замечено, ряд естественных природных объектов обладает схожими с фракталами структурами. Границы облаков, границы морских побережий, трещины в некоторых горных породах, турбулентные потоки в жидкостях, зимние узоры на стекле, структуры некоторых веществ, полученные с помощью электронного микроскопа, кровеносная система сердечной мышцы имеют регулярно повторяющиеся масштабированные элементы. Это обуславливает факт активного использования самоподобных структур в современной компьютерной графике, для моделирования и визуализации таких природных явлений природы (см., например, [5]). В игровой индустрии фрактальные алгоритмы применяются для отображения горной местности и ландшафтов. 8 Кроме рассмотренного в данной работе программного генератора Ultra Fractal отметим наличие других инструментальных средств, например, пакетов Apophysis 7x, Chaos Pro, Mandelbulb 3D, Fractal Explorer. Подобное программное обеспечение может быть использовано в учебном процессе как в виде одного из разделов курсов «Компьютерная графика», «Мультимедийные системы и среды» специальности «Прикладная информатика» направления «Веб-программирование и компьютерный дизайн», так и в качестве разделов специальных курсов для студентов, обучающихся на специальностях другого профиля. Изображения фрактальной графики могут быть использованы как элементы компьютерного и декоративного дизайна в курсовых и дипломных проектах. ЛИТЕРАТУРА 1. Мандельброт, Б Фрактальная геометрия природы = The Fractal Geometry of Nature / Б. Мандельброт. – Мн.: Книжный дом, 2001. – 656 с. 2. Морозов А.Д. Введение в теорию фракталов / А.Д. Морозов. – М.: Институт компьютерных исследований, 2002. – 160 с. 3. Шахов, Д. Фрактал-арт [Электрон. ресурс]. – 2013. – Режим доступа: http://mrush.ru/component/k2/fraktal-art.html 4. http://www.ultrafractal.com/ 5. Федер, Е. Фракталы. / Е. Федер. – М.: Мир, 1991. – 261 с. 9