Домой / Группы / Чудеса фрактальной графики. Применение, примеры и изображения фрактальной графики

Чудеса фрактальной графики. Применение, примеры и изображения фрактальной графики

Введение

Слово фрактал образовано от латинского "fractus" и в переводе означает состоящий из фрагментов. Оно было предложено Бенуа Мандельбротом в 1975 году. Определение фрактала, данное Мандельбротом, звучит так: "Фракталом называется структура, состоящая из частей, которые в каком-то смысле подобны целому". Одним из основных свойств фракталов является самоподобие. В самом простом случае небольшая часть фрактала содержит информацию о всем фрактале. Понятия фрактал и фрактальная геометрия, появившиеся в конце 70-х, с середины 80-х прочно вошли в обиход математиков и программистов.

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

1. Теоретическая часть

1.1Применение фракталов

·Компьютерные системы.

Наиболее полезным использованием фракталов в компьютерной науке является фрактальное сжатие данных. Достоинство фрактального сжатия изображений - очень маленький размер упакованного файла и малое время восстановления картинки. Фрактально упакованные картинки можно масштабировать без появления пикселизации. Но процесс сжатия занимает продолжительное время и иногда длится часами. Алгоритм фрактальной упаковки с потерей качества позволяет задать степень сжатия, аналогично формату jpeg.

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

·Механика жидкостей.

Изучение турбулентности в потоках очень хорошо подстраивается под фракталы. Турбулентные потоки хаотичны и поэтому их сложно точно смоделировать.

При помощи фракталов также можно смоделировать языки пламени.

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

·Телекоммуникации.

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

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

1.2Классификация фракталов

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

vОбладает нетривиальной структурой на всех масштабах. В этом и есть отличие от регулярных фигур, таких как окружность или эллипс. Если мы рассмотрим небольшой фрагмент регулярной фигуры в крупном масштабе, то он будет похож на фрагмент прямой. Для фрактала увеличение масштаба не ведет к упрощению структуры, на всех шкалах мы увидим одинаково сложную картину.

vЯвляется самоподобным или приближенно самоподобным.

vОбладает дробной метрической размерностью.

В основном фракталы классифицируют по трём видам:

.Алгебраические фракталы

.Геометрические фракталы

.Стохастические фракталы

Алгебраические фракталы

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

получения алгебраических фракталов несколько. Один из методов представляет собой многократный (итерационный) расчет функции Zn+1=f(Zn), где Z - комплексное число, а f некая функция. Расчет данной функции продолжается до выполнения определенного условия. И когда это условие выполнится - на экран выводится точка. При этом функция для разных точек комплексной плоскости может иметь разное поведение: с течением времени она может стремиться к бесконечности; стремиться к 0; принимать несколько фиксированных значений и не выходить за их пределы. Поведение хаотично, без каких-либо тенденций. Таким образом было получено множество Мандельброта - фрактал, определённый, как множество точек С на комплексной плоскости. Бенуа Мандельброт предложил модель фрактала, которая стала классической и часто используется для демонстрации, как типичного примера самого фрактала, так и для демонстрации красоты фракталов, которая также привлекает исследователей, художников, просто интересующихся людей.

Рис.1. Пример алгебраического фрактала.

Геометрические фракталы

Фракталы этого класса самые наглядные, потому что в них сразу видна самоподобность. В двухмерном случае такие фракталы можно получить, задав некоторую ломаную, называемую генератором. За один шаг алгоритма каждый из отрезков, составляющих ломаную, заменяется на ломаную-генератор. В результате бесконечного повторения этой процедуры (а, точнее, при переходе к пределу) получается фрактальная кривая. При видимой сложности полученной кривой, её общий вид задается только формой генератора. Примерами таких кривых служат: кривая Коха (снежинка Коха), кривая Леви, кривая Минковского, кривая Пеано.

Рис.2. Пример геометрического фрактала.

Стохастические фракталы

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

1.3Виды фракталов

Рассмотрим несколько распространённых видов фракталов.

Решётка Серпинского.

Это один из фракталов, с которыми экспериментировал Мандельброт, когда разрабатывал концепции фрактальных размерностей и итераций. Треугольники, сформированные соединением средних точек большего треугольника вырезаны из главного треугольника, образовывая треугольник, с большим количеством дырочек. В этом случае инициатор - большой треугольник а шаблон - операция вырезания треугольников, подобных большему. Так же можно получить и трехмерную версию треугольника, используя обыкновенный тетраэдр и вырезая маленькие тетраэдры. Размерность такого фрактала ln3/ln2 = 1.584962501.

Рис.3. Решетка Серпинского.

Треугольник Серпинского.

Не перепутайте этот фрактал с решеткой Серпинского. Это два абсолютно разных объекта. В этом фрактале, инициатор и генератор одинаковы. При каждой итерации, добавляется уменьшенная копия инициатора к каждому углу генератора и так далее. Если при создании этого фрактала произвести бесконечное число итераций, он бы занял всю плоскость, не оставив ни одной дырочки. Поэтому его фрактальная размерность ln9/ln3 = 2.0.

Рис.4. Треугольник Серпинского.

Кривая Коха.

Кривая Коха один из самых типичных детерминированных фракталов. Она была изобретена в 1904 году шведским математиком по имени Хельге фон Кох, который, изучая работы Георга Контора и Карла Вейерштрассе, натолкнулся на описания некоторых странных кривых с необычным поведением. Инициатор - прямая линия. Генератор - равносторонний треугольник, стороны которого равны трети длины большего отрезка. Эти треугольники добавляются к середине каждого сегмента снова и снова. В своем исследовании, Мандельброт много экспериментировал с кривыми Коха, и получил фигуры такие как Острова Коха, Кресты Коха, Снежинки Коха и даже трехмерные представления кривой Коха, используя тетраэдр и прибавляя меньшие по размерам тетраэдры к каждой его грани. Кривая Коха имеет размерность ln4/ln3 = 1.261859507.

Рис.5. Кривая Коха.

Фрактал Мандельброта.

Это НЕ множество Мандельброта, которое можно достаточно часто видеть. Множество Мандельброта основано на нелинейных уравнениях и является комплексным фракталом. Это тоже вариант кривой Коха несмотря на то, что этот объект не похож на нее. Инициатор и генератор так же отличны от использованных для создания фракталов, основанных на принципе кривой Коха, но идея остается той же. Вместо того, чтобы присоединять равносторонние треугольники к отрезку кривой, квадраты присоединяются к квадрату. Благодаря тому, что этот фрактал занимает точно половину отведенного пространства при каждой итерации, он имеет простую фрактальную размерность 3/2 = 1.5

Рис.6. Фрактал Мандельброта.

Кривая Дракона.

Изобретенная итальянским математиком Джузеппе Пеано, Кривая Дракона или Взмах Дракона, как он назвал его, очень похож на колбасу Минковского. Использован более простой инициатор, а генератор тот же самый. Мандельброт назвал этот фрактал Река Двойного Дракона. Его фрактальная размерность приблизительно равна 1.5236.

Рис.7. Дракон Джузеппе Пеано.

Множество Мандельброта.

Множества Мандельброта и Жюлиа, вероятно, два наиболее распространенных среди сложных фракталов. Их можно найти во многих научных журналах, обложках книг, открытках, и в компьютерных хранителях экрана. Множество Мандельброта, которое было построено Бенуа Мандельбротом, наверное первая ассоциация, возникающая у людей, когда они слышат слово фрактал. Этот фрактал, напоминающий чесальную машину с прикрепленными к ней пылающими древовидными и круглыми областями, генерируется простой формулой Zn+1=Zna+C, где Z и C - комплексные числа и а - положительное число.

Множество Мандельброта, которое чаще всего можно увидеть - это множество Мандельброта 2й степени, то есть а=2. Тот факт, что множество Мандельброта не только Zn+1=ZnІ+C, а фрактал, показатель в формуле которого может быть любым положительным числом ввел в заблуждение многих. На этой странице вы видите пример множества Мандельброта для различных значений показателя а.

Также популярен процесс Z=Z*tg (Z+C). Благодаря включению функции тангенса, получается множество Мандельброта, окруженное областью, напоминающей яблоко. При использовании функции косинуса, получаются эффекты воздушных пузырьков. Короче говоря, существует бесконечное количество способов настройки множества Мандельброта для получения различных красивых картинок.

Рис.8. Множество Мандельброта.

Модель Джулии

Модель фрактала Джулии имеет то же уравнение, что и модель Мандельброта: Z=Z 2 +c, только здесь переменным параметром является не c , a z.

Соответственно, меняется вся структура фрактала, так как теперь на начальное положение не накладывается никаких ограничений. Между моделями Мандельброта и Джулии существует такое различие: если модель Мандельброта является статической (так как z начальное всегда равно нулю), то модель Джулии является динамической моделью фрактала.

Рис.9. Модель Джулии.

2. Постановка задачи

Необходимо спроектировать и разработать программный продукт, при помощи которого возможно наглядно посмотреть изображения фрактальной графики. Программа должна позволять раскрыть сущность фрактала - многократное самоповторение (всего изображения или определённой его части). Интерфейс должен быть максимально понятным. Скорость работы должна быть такой, чтобы сбалансировать производительность и качество, то есть при данной скорости прорисовывается достаточно наглядное изображение. Необходима так же возможность сохранения фрактального изображения. Программа должна быть интуитивно понятной и "не отталкивать при первом взгляде". Возможностями программы должны быть доступны прорисовки алгебраического и геометрического фракталов.


Рис.10. Схема работы программы.

Работать мы будем в среде программирования PascalABC.NET, поговорим о ней подробнее. PascalABC.NET - это язык программирования Паскаль нового поколения, который включает в себя классический Паскаль, большинство возможностей языка Delphi , а также ряд собственных расширений. Он реализован на платформе Microsoft.NET и содержит все современные языковые средства такие как: классы , перегрузку операций , интерфейсы , обработку исключений , обобщенные классы и подпрограммы , сборку мусора , лямбда-выражения, средства параллельного программирования ..NET является мультипарадигменным языком: на нем можно программировать в структурном , объектно-ориентированном и функциональном стилях. Также это простая и мощная интегрированная среда разработки, поддерживающая технологию IntelliSense , содержащая средства автоформатирования, встроенный отладчик и встроенный дизайнер форм. Кроме того, консольный компилятор PascalABC.NET функционирует на Linux и MacOS под Mono .

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

Особенности:

·доступ к существующим.NET библиотекам и возможность создания новых. В частности, существуют библиотеки для основных алгоритмов и структур данных.

·среда разработки, ориентированная на обучение: подсказки по коду, отладчик, автоформатирование кода и подсветка синтаксиса, простая навигация по коду и т.д.

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

·средства параллельного программирования (директивы OpenMP).

·обучающий инструментарий, сохранившийся с Pascal ABC: встроенный задачник, механизм проверяемых заданий, "исполнители" Робот и Чертежник и т.д.

По функциональному назначению выделяется три области экрана:

ØСтрока меню

ØРабочая область

ØСтрока состояния

В рабочей области есть возможность открывать различные окна программы: окна редактируемого текста, окна помощи, отладки и настройки. Имя файла написано в заголовке окна. Строка состояния показывает некоторые доступные и важные в настоящее время операции и комбинации клавиш соответствующие им.

Рис.11. Главное окно в PascalABC.NET

Основные команды и горячие клавиши.

Основные команды языка программирования Pascal и соответствующие им горячие клавиши:

·Ctrl+F9 - запуск программы

·Alt+F5 - просмотр пользовательского экрана

·F2 - сохранение программы

·F3 - открытие сохраненной программы

·Alt+F3 - закрытие активного окна

·Alt+X - выход из Турбо Паскаль

·F1 - контекстная помощь

·Ctrl+F1 - справка об операторе, на котором установлен курсор

·Alt+Backspace - отмена последнего изменения

·Ctrl+Y - удаление строки

·Shift+стрелки - выделение блока текста

·Ctrl+Insert - копирование выделенного блока в буфер

·Shift+Insert - вставка из буфера

Операции отношения.

К операциям отношения в Pascal относят:

·> - больше

·< - меньше

·= - равно

·<> - не равно

·>= - больше или равно

·<= - меньше или равно

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

Приоритет операций.

Существует следующий приоритет операций:

·унарная операция not, унарный минус -, взятие адреса @

·операции типа умножения: * / div mod and

·операции типа сложения: + - or xor

·операции отношения: = <> < > <= >= in

Логические операции.

·NOT - логическое отрицание ("НЕ")

·AND - логическое умножение ("И")

·OR - логическое сложение ("ИЛИ")

·XOR - логическое ("Исключающее ИЛИ")

Структура программы

Программа на языке Pascal состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы должен содержат имя программы (program tab;)

Описания могут включать в себя:

фрактал стохастический множество кривая

Рис.12.Структура программы.

Раздел описания модулей. Состоит из служебного слова USES и содержит имена подключаемых модулей (библиотек). Раздел описания модулей должен быть первым среди разделов описаний. Имена модулей разделяются друг от друга запятыми (uses CRT,tab;).

Все метки, которые используются в программе, должны быть описаны в разделе описания меток (label 5, 365, 95, Quit;).

Описание констант позволяет использовать имена как синонимы констант, их необходимо определить в разделе описания констант:K=524; MAX= 17850;

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

var S,R,M: Integer;,Y: Char;,D6: Boolean;

Раздел операторов - составной оператор, содержащий между служебными словами begin.......end последовательность операторов. Операторы отделяются символом " ; ". А текст заканчивается точкой(.) .

Кроме описаний и операторов PascalABC.NET может содержать комментарии, представляющие собой произвольную последовательность символов, которые располагаются между скобкой комментариев { ... }:

3. Практическая часть

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

Рис.13. Пошаговое создание треугольника Серпинского.

Выкидывание центральных треугольников - не единственный способ получить в итоге треугольник Серпинского. Можно двигаться "в обратном направлении": взять изначально "пустой" треугольник, затем достроить в нём треугольник, образованный средними линиями, затем в каждом из трех угловых треугольников сделать то же самое, и т. д. Поначалу фигуры будут сильно отличаться, но с ростом номера итерации они будут всё больше походить друг на друга, а в пределе совпадут.

Рис.14. Пошаговое создание треугольника Серпинского.

Вот наш конечный код написание нашей программы треугольника Серпинского в среде программирования PascalABC.NET.

program Serpinskiy;CRT, GraphABC;, gm: Integer;= 9;tr(x1, y1, x2, y2, x3, y3: Real);(Round(x1), Round(y1), Round(x2), Round(y2));(Round(x2), Round(y2), Round(x3), Round(y3));(Round(x3), Round(y3), Round(x1), Round(y1));;draw(x1, y1, x2, y2, x3, y3: Real; n: Integer);n, y1n, x2n, y2n, x3n, y3n: Real;n > 0 thenn:= (x1 + x2) / 2;n:= (y1 + y2) / 2;n:= (x2 + x3) / 2;n:= (y2 + y3) / 2;n:= (x3 + x1) / 2;n:= (y3 + y1) / 2;(x1n, y1n, x2n, y2n, x3n, y3n);(x1, y1, x1n, y1n, x3n, y3n, n - 1);(x2, y2, x1n, y1n, x2n, y2n, n - 1);(x3, y3, x2n, y2n, x3n, y3n, n - 1);;;(320,10,600,470,40,470);(320,10,600,470,40,470,iter);{}.

Рис.15. Готовая программа в PascalABC.NET.

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

Рис.16. Запуск программы.

После запуска откроется дополнительное окно, в котором мы можем увидеть наш готовый рисунок.

Рис.17. Готовый Треугольник Серпинского.

Заключение

Наука о фракталах очень молода, потому что они стали появляться с развитием компьютерных технологий. Поэтому многое еще не изучено и многое еще предстоит открыть. Основная причина применения фракталов в различных науках заключается в том, что они описывают реальный мир иногда даже лучше, чем традиционная физика или математика. Мы выяснили, что фракталы можно применять не только в точных науках, но и практически во всем, что нас окружает. В этом мы можем убедиться на конкретном примере, представленном в практической части работы, а именно на примере создания фрактала треугольника Серпинского. Кроме большой функциональности, возможности применения фракталов в самых различных сферах жизни, это очень яркие, изумительные по своей красоте изображения, которые доставляют огромное эстетическое удовольствие, позволяют насладиться ими. Создавать свои собственные фракталы может каждый, используя доступные программы. От самого процесса создания совершенно для нас нового и одновременно невероятно красивого, порой фантастического, получаешь массу удовольствия. Фракталы очень разнообразны, как и их применение. Изучая фрактальные модели для практического применения, каждый сможет выбрать подходящее для себя направление.

Список литературы

1.Божокин С.В., Паршин Д.А. Фракталы и мультифракталы. РХД 2008 г.

Дж.Милнор Голоморфная динамика. РХД 2010 г.

Витолин Д. Применение фракталов в машинной графике. // Computerworld-Россия.-2007.

Пайтген Х.-О., Рихтер П. Х. Красота фракталов. - М.: "Мир", 2009.

Кроновер Р. М. Фракталы и хаос в динамических системах. Основы теории 2011.

Мандельброт Б. Самоаффинные фрактальные множества, "Фракталы в физике". М.: Мир 2010.

Мандельброт Б. Фрактальная геометрия природы. 2009.

Морозов А.Д. Введение в теорию фракталов. Н.Новгород: Изд-во Нижегород. ун-та 2009.

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

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

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

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

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

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

Отдельной областью представляется трехмерная (3D) графика, изучающая приемы и методы построения объемных моделей объектов в виртуальном пространстве. Как правило, в ней сочетаются растровый и векторный способы формирования изображений».

Материал из Википедии:

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

По способам задания изображений графику можно разделить на категории:

Двумерная графика (2D)

Двумерная (2D - от англ. two dimensions - «два измерения») компьютерная графика классифицируется по типу представления графической информации, и следующими из него алгоритмами обработки изображений. Обычно компьютерную графику разделяют на векторную и растровую, хотя обособляют ещё и фрактальный тип представления изображений.

Векторная графика

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

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

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

При преобразовании растровой картинки исходными данными является только описание набора пикселей, поэтому возникает проблема замены меньшего числа пикселей на большее (при увеличении), или большего на меньшее (при уменьшении). Простейшим способом является замена одного пикселя несколькими того же цвета (метод копирования ближайшего пикселя: Nearest Neighbour). Более совершенные методы используют алгоритмы интерполяции, при которых новые пиксели получают некоторый цвет, код которого вычисляется на основе кодов цветов соседних пикселей. Подобным образом выполняется масштабирование в программе Adobe Photoshop (билинейная и бикубическая интерполяция).

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

Растровая графика

Основным (наименьшим) элементом растрового изображения является точка . Если изображение экранное, то эта точка называется пикселом . Каждый пиксел растрового изображения имеет свойства: размещение и цвет. Чем больше количество пикселей и чем меньше их размеры, тем лучше выглядит изображение. Большие объемы данных - это основная проблема при использовании растровых изображений. Для активных работ с большеразмерными иллюстрациями типа журнальной полосы требуются компьютеры с исключительно большими размерами оперативной памяти (128 Мбайт и более). Разумеется, такие компьютеры должны иметь и высокопроизводительные процессоры. Второй недостаток растровых изображений связан с невозможностью их увеличения для рассмотрения деталей. Поскольку изображение состоит из точек, то увеличение изображения приводит только к тому, что эти точки становятся крупнее и напоминают мозаику. Никаких дополнительных деталей при увеличении растрового изображения рассмотреть не удается. Более того, увеличение точек растра визуально искажает иллюстрацию и делает её грубой. Этот эффект называется пикселизацией.

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

Как правило, разрешение в разных направлениях одинаково, что даёт пиксель квадратной формы. Но это не обязательно - например, горизонтальное разрешение может отличаться от вертикального, при этом элемент изображения (пиксель) будет не квадратным, а прямоугольным.

Размеры растровых изображений (image resolution ) выражают в виде количества пикселов по горизонтали и вертикали, например: 1600×1200. В данном случае это означает, что ширина изображения составляет 1600, а высота - 1200 точек (такое изображение состоит из 1 920 000 точек, то есть примерно 2 мегапикселя ). Количество точек по горизонтали и вертикали может быть разным для разных изображений. Изображения, как правило, хранятся в виде, максимально пригодном для отображения экранами мониторов - они хранят цвет пикселов в виде требуемой яркости свечения излучающих элементов экрана (RGB ), и рассчитаны на то, что пикселы изображения будут отображаться пикселами экрана один к одному. Это обепечивает простоту вывода изображения на экран.

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

При большом количестве точек , размещённом на маленькой площади, глаз не замечает мозаичности рисунка. Справедливо и обратное: малое разрешение позволит глазу заметить растр изображения («ступеньки»). Высокое разрешение изображения при малом размере плоскости отображающего устройства не позволит вывести на него всё изображение, либо при выводе изображение будет «подгоняться», например для каждого отображаемого пиксела будут усредняться цвета попадающей в него части исходного изображения. При необходимости крупно отобразить изображение небольшого размера на устройстве с высоким разрешением приходится вычислять цвета промежуточных пикселей. Изменение фактического количества пикселей изображения называется Передискретизация, и для неё существуют целый ряд алгоритмов разной сложности.

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

Большинство форматов графических файлов позволяют хранить данные о желаемом масштабе при выводе на печать, то есть о желаемом разрешении в dpi (англ. dots per inch - эта величина говорит о каком-то количестве точек на единицу длины, например 300 dpi означает 300 точек на один дюйм ). Это исключительно справочная величина. Как правило, для получения распечатка фотографии, который предназначен для рассматривания с растояния порядка 20-30 сантиметров, достаточно разрешения 300 dpi. Исходя из этого можно прикинуть, какого размера отпечаток можно получить из имеющегося изображения или какого размера изображение надо получить, чтоб затем сделать отпечаток нужного размера.

Фрактальная графика

Фрактал - объект, отдельные элементы которого наследуют свойства родительских структур. Поскольку более детальное описание элементов меньшего масштаба происходит по простому алгоритму, описать такой объект можно всего лишь несколькими математическими уравнениями.

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

Фрактал - это рисунок, который состоит из подобных между собой элементов. Существует большое количество графических изображений, которые являются фракталами: треугольник Серпинского, снежинка Коха, "дракон" Хартера-Хейтуея, множество Мандельброта. Построение фрактального рисунка осуществляется по какому-то алгоритму или путём автоматической генерации изображений при помощи вычислений по конкретным формулам. Изменения значений в алгоритмах или коэффициентов в формулах приводит к модификации этих изображений. Главным преимуществом фрактальной графики есть то, что в файле фрактального изображения сохраняются только алгоритмы и формулы.

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

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

Таким образом, мелкие элементы фрактального объекта повторяют свойства всего объекта. Полученный объект носит название «фрактальной фигуры». Процесс наследования можно продолжать до бесконечности. Таким образом, можно описать и такой графический элемент, как прямую.
Изменяя и комбинирую окраску фрактальных фигур можно моделировать образы живой и неживой природы (например, ветви дерева или снежинки), а также, составлять из полученных фигур «фрактальную композицию». Фрактальная графика, также как векторная и трёхмерная, является вычисляемой. Её главное отличие в том, что изображение строится по уравнению или системе уравнений. Поэтому в памяти компьютера для выполнения всех вычислений, ничего кроме формулы хранить не требуется.
Только изменив коэффициенты уравнения, можно получить совершенно другое изображение. Эта идея нашла использование в компьютерной графике благодаря компактности математического аппарата, необходимого для ее реализации. Так, с помощью нескольких математических коэффициентов можно задать линии и поверхности очень сложной формы.

С точки зрения машинной графики фрактальная геометрия незаменима при генерации искусственных облаков, гор, поверхности моря. Фактически благодаря фрактальной графике найден способ эффективной реализации сложных неевклидовых объектов, образы которых весьма похожи на природные. Геометрические фракталы на экране компьютера - это узоры, построенные самим компьютером по заданной программе. Помимо фрактальной живописи существуют фрактальная анимация и фрактальная музыка.
Создатель фракталов - это художник, скульптор, фотограф, изобретатель и ученый в одном лице. Вы сами задаете форму рисунка математической формулой, исследуете сходимость процесса, варьируя его параметры, выбираете вид изображения и палитру цветов, то есть творите рисунок «с нуля». В этом одно из отличий фрактальных графических редакторов (и в частности - Painter) от прочих графических программ.
Например, в Adobe Photoshop изображение, как правило, «с нуля» не создается, а только обрабатывается. Другой самобытной особенностью фрактального графического редактора Painter (как и прочих фрактальных программ, например Art Dabbler) является то, что реальный художник, работающий без компьютера, никогда не достигнет с помощью кисти, карандаша и пера тех возможностей, которые заложены в Painter программистами.

Трёхмерная графика (3D)

Трёхмерная графика (3D - от англ. three dimensions - «три измерения») оперирует с объектами в трёхмерном пространстве. Обычно результаты представляют собой плоскую картинку, проекцию. Трёхмерная компьютерная графика широко используется в кино, компьютерных играх.

В трёхмерной компьютерной графике все объекты обычно представляются как набор поверхностей или частиц. Минимальную поверхность называют полигоном. В качестве полигона обычно выбирают треугольники.

Всеми визуальными преобразованиями в 3D-графике управляют матрицы (см. также: аффинное преобразование в линейной алгебре). В компьютерной графике используется три вида матриц:

Матрица поворота

Матрица сдвига

Матрица масштабирования

Любой полигон можно представить в виде набора из координат его вершин. Так, у треугольника будет 3 вершины. Координаты каждой вершины представляют собой вектор (x, y, z). Умножив вектор на соответствующую матрицу, мы получим новый вектор. Сделав такое преобразование со всеми вершинами полигона, получим новый полигон, а преобразовав все полигоны, получим новый объект, повёрнутый/сдвинутый/масштабированный относительно исходного.

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

Математика буквально пронизана гармонией, и графика фрактальная - прямое тому подтверждение. Наука присутствует при создании каждого ее элемента, поэтому она отражает всю красоту.

Создатель фрактальной геометрии, профессор Мальдерброт, писал в своих книгах, что рассматриваемая графика представляет собой не просто повторяющиеся изображения. Это - структура любого существа или объекта на планете, живого и неживого. К примеру, ДНК является основой, одной интеграцией. Но если код начинает повторяться, тогда появляется человек.

Основы фрактальной графики

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

Само слово "фрактал" может употребляться, если фигура обладает одним или несколькими из этих свойств:

  • Нетривиальная структура. Когда рассматривается небольшая деталь всего изображения, то фрагмент схож со всем рисунком. Увеличение масштаба не приводит к ухудшению. Изображение всегда остается одинаково сложным.
  • Каждая часть рисунка является самоподобной.
  • Имеется математическая размерность.
  • Строится при помощи повторения.

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

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

Как создать элемент фрактальной графики?

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

  1. Задают условие. Это фигура, на основе которой будет строиться все изображение.
  2. Задают процедуру. Она преобразует условие.
  3. Получают геометрический фрактал.

Обычно нулевое условие представляется в виде треугольника.

Чтобы построить изображение, нужно применить две процедуры. Во-первых, DrawTriangle. Она строит треугольник по точкам, заданным пользователем. Во-вторых, DrawGenerator. Она указывает количество точек. Каждая процедура может повторяться несколько раз или бесконечно долго. Для определения этого показателя применяется численный аргумент n.

Другие действия с фрактальной графикой

После того как элемент фрактальной графики был создан, с ним можно производить различные дополнительные действия:

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

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

Программы для генерации

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

Продукт Art Dabbler представляет собой лучший вариант, если пользователь раньше не имел дело с его налогами. Здесь можно не только освоить графику, но и научиться рисовать на компьютере. К другим преимуществам следует отнести небольшое количество занимаемой памяти и интуитивно понятный интерфейс.

Другая программа - Ultra Fractal. Она уже ориентирована на работу профессионалов, новичкам сложно будет в ней разобраться. Интерфейс здесь достаточно сложный, но производители выполнили его на примере обычного Photoshop. Если пользователь имел дело с этой программой, то в кнопках разберется быстро. Особенность Ultra Fractal заключается в том, что здесь выполняется не только графика фрактальная в качестве стандартного и обычного изображения, но и анимация. Формулы для составления прилагаются, но при необходимости пользователь сможет задействовать свою.

Существующие форматы

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

Если перед пользователем аппликация, большая часть которой выдержана в одном цвете, то разумно использовать форматы BMP и PCX. Здесь заменяется последовательность повторяющихся величин.

Диаграмму, которая очень редко, но все-таки используется во фрактальной графике, логично поместить в TIFF или GIF.

Часть форматов является универсальной. То есть, их можно просмотреть в большинстве редакторов. Но если пользователю важна качественная тогда нужно применять оригинальную программу.

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

Сферы применения

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

  1. Компьютерная графика. Реалистично изображаются рельефы и природные объекты. Это применяется в создании компьютерных игр.
  2. Анализ фондовых рынков. Фракталы здесь используются для того, чтобы отметить повторения, которые впоследствии сыграют трейдерам на руку.
  3. Естественные науки. В физике с помощью фрактальной графики моделируются нелинейные процессы. В биологии она описывает строение кровеносной системы.
  4. чтобы уменьшить объем информации.
  5. Создание децентрализованной сети. Посредством фракталов удается обеспечить прямое подключение, а не через центральное регулирование. Поэтому сеть становится более устойчивой.

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

Примеры

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

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

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

Плюсы и минусы

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

Достоинства фрактальной графики заключаются в нескольких факторах:

  1. Небольшой размер при масштабном рисунке.
  2. Нет конца масштабированию, сложность картинки можно увеличивать бесконечно.
  3. Нет другого такого же инструмента, который позволит создавать сложные фигуры.
  4. Реалистичность.
  5. Простота в создании работ.

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

Во-вторых, присутствуют ограничения в исходных математических фигурах. Некоторые изображения создать посредством фракталов не удастся.

Сходства и различия между фракталом и вектором

Векторная и фрактальная графика очень различаются между собой:

  1. По кодированию изображений. Вектор задействует контуры разных геометрических фигур, фрактал - математическую формулу, в основе которой лежит треугольник.
  2. По применению. Вектор используют везде, где нужно получить четкий контур. Фрактальная графика более специализирована, она нашла свое применение в математике и искусстве.
  3. По аналогам. Векторными аналогами являются слайды или функции на графиках. У фракталов это - снежинки или кристаллы.

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

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

Уникальные особенности фракталов

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

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

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

Заключение

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

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

ФГБОУ ВО «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ ИМЕНИ М. Е. ЕВСЕВЬЕВА»

Факультет физико-математический

Кафедра информатики и вычислительной техники

ФРАКТАЛЬНАЯ ГРАФИКА В СПЕЦИАЛЬНЫХ ПРОГРАММНЫХ СРЕДСТВАХ

Реферат выполнила

студентка 5 курса группы МДИ-113 Тимошина Светлана

Направление подготовки 050100 «Педагогическое образование».

Профили подготовки «Математика» и «Информатика».

Реферат проверила ______________________ Т. В. Кормилицина

Саранск 2017

Содержание

Введение………………………………………………………………………...…31. …......………..…….3-5

2. Специальные программные средства..........………..………………..….…5-13

Заключение……………………………………………………….……………...13

Список использованной литературы…………………………………………...14

Введение

На сегодняшний день Фрактальная графика является второй по росту популярности из четырёх видов компьютерной графики.

Так же есть . Одна – для создания фотореалистичных изображений; Другая – для создания сложных геометрических объектов; и – как отдельный вид от предыдущих для создания объёмных зрительно-подобных изображений и объектов.

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

    Общие сведения о фракталах и фрактальной графике

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

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

Многие объекты в природе обладают фрактальными свойствами, например, побережья, облака, кроны деревьев, кровеносная система и система альвеол человека или животных.

Фракталы, особенно на плоскости, популярны благодаря сочетанию красоты с простотой построения при помощи компьютера.

Одним из первых описал динамические фракталы в 1918 году французский математик Гастон Жюлиа в своем объемном труде в несколько сотен страниц. Но в нем отсутствовали какие-либо изображения. Компьютеры сделали видимым то, что не могло быть изображено во времена Жюлиа. Первые примеры самоподобных множеств с необычными свойствами появились в XIX веке (например, множество Кантора). Термин «фрактал» был введён Бенуа Мандельбротом в 1975 году и получил широкую популярность с выходом в 1977 году его книги «Фрактальная геометрия природы».

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

Мультифрактал - комплексный фрактал, который может детерминироваться не одним единственным алгоритмом построения, а несколькими последовательно сменяющими друг друга алгоритмами. Каждый из них генерирует паттерн со своей фрактальной размерностью. Для описания мультифрактала вычисляют мультифрактальный спектр включающий в себя ряд фрактальных размерностей присущих элементам данного мультифрактала.

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

Фрактальный подход нашел широкое применение во многих областях компьютерной графики, науки и искусства.

Фрактальная графика не является, строго говоря, частью векторной графики, поскольку широко использует и растровые объекты. Фракталы широко используются в растровых (AdobePhotoshop) и векторных (CorelDraw) редакторах и трехмерной (CorelBryce) графике.

  1. Специальные программные средства

1. Программа Fractal Editor

Знакомство с основами фрактальной графики лучше всего начать с пакета Fractal Editor . Этот редактор (созданный фирмой Fractal Design, а теперь принадлежащий Corel) фактически представляет собой усеченный вариант программы Painter. Это отличная программа для обучения не только компьютерной графике, но прежде всего азам рисования. Малый объем требуемой памяти (для его установки необходимо всего 10 Мбайт), а также простой интерфейс, доступный даже ребенку, позволяют использовать его в школьной программе.

2. Программа Ultra Fractal


Ultra Fractal - лучшее решение для создания уникальных фрактальных изображений профессионального качества. Пакет отличается дружественным интерфейсом, многие элементы которого напоминают интерфейс Photoshop (что упрощает изучение), и сопровождается невероятно подробной и прекрасно иллюстрированной документацией с серией туториалов, в которых поэтапно рассматриваются все аспекты работы с программой. Ultra Fractal представлен двумя редакциями: Standard Edition и расширенной Animation Edition, возможности которой позволяют не только генерировать фрактальные изображения, но и создавать анимацию на их основе. Созданные изображения можно визуализировать в высоком разрешении, пригодном для полиграфии, и сохранить в собственном формате программы или в одном из популярных фрактальных форматов. Визуализированные изображения также могут быть экспортированы в один из растровых графических форматов (jpg, bmp, png и psd), а готовые фрактальные анимации - в AVI-формат.
Принцип создания фрактальных изображений достаточно традиционен, самое простое - воспользоваться одной из прилагаемых в поставке формул (сориентироваться относительно возможного вида генерируемого по выбранной формуле изображения поможет встроенный браузер), а затем подредактировать параметры формулы желаемым образом. А если эксперимент оказался неудачен, то последние действия легко отменить. Готовых фрактальных формул очень много, и число их может быть расширено путем скачивания новых формул с сайта программы. Подготовленные пользователи могут попытать счастья и в создании собственной формулы, для чего в пакете имеется встроенный текстовый редактор с поддержкой базовых шаблонов, основанных на стандартных конструкциях языка программирования фрактальных формул.
Однако не стоит думать, что таинство фрактального изображения кроется лишь в удачной формуле. Не менее важны и иные аспекты. Например, цветовая настройка, предполагающая выбор варианта окраски и точную настройку ее параметров. Настройка цвета реализована на уровне солидных графических пакетов, например градиенты можно создавать и настраивать самостоятельно, корректируя множество параметров, включая полупрозрачность, и сохранять их в библиотеке для дальнейшего использования. Применение слоев с возможностью изменения режимов их смешивания и корректировкой полупрозрачности позволяет генерировать многослойные фракталы и за счет наложения фрактальных изображений друг на друга добиваться уникальных эффектов. Использование масок непрозрачности обеспечивает маскирование определенных областей изображения. Фильтры трансформации позволяют выполнять в отношении выделенных фрагментов изображения разнообразные преобразования: масштабировать, зеркально отражать, обрезать по шаблону, искажать посредством завихрения или ряби, размножать по принципу калейдоскопа и т.д.

3. Программа Fractal Explorer


Fractal Explorer - программа для создания изображений фракталов и трехмерных аттракторов с достаточно впечатляющими возможностями. Имеет интуитивно понятный классический интерфейс, который может быть настроен в соответствии с пользовательскими предпочтениями, и поддерживает стандартные форматы фрактальных изображений (*.frp; *.frs; *.fri; *.fro; *.fr3, *.fr4 и др.). Готовые фрактальные изображения сохраняются в формате *.frs и могут быть экспортированы в один из растровых графических форматов (jpg, bmp, png и gif), а фрактальные анимации сохраняются как AVI-файлы.
Генерация фракталов возможна двумя способами - на основе базовых фрактальных изображений, построенных по входящим в поставку формулам, или с нуля. Первый вариант позволяет получить интересные результаты сравнительно просто, ведь выбрать подходящую формулу несложно, тем более что удобный файловый браузер позволит оценить качество фрактала из базы еще до создания на его основе фрактального изображения. У полученного таким путем фрактального изображения можно сменить цветовую палитру, добавить к нему фоновое изображение и определить режим смешивания фрактального и фонового слоев, а также степень прозрачности фрактального слоя. Затем можно будет подвергнуть фрактальное изображение трансформации, при необходимости масштабировать, определить размеры изображения и провести рендеринг. Создание изображения с нуля гораздо сложнее и предполагает выбор одного из двух способов. Можно выбрать тип фрактала почти из 150 вариантов. А затем уже перейти к изменению разнообразных параметров: настройке палитры, фона и пр. А можно попробовать создать свою пользовательскую формулу, воспользовавшись встроенным компилятором. Перед рендерингом готового изображения может потребоваться проведение автоматической коррекции цветового баланса и/или ручной коррекции яркости, контрастности и насыщенности.
4. Программа ChaosPro


ChaosPro - один из лучших бесплатных генераторов фрактальных изображений, с помощью которого нетрудно создать бесконечное множество удивительных по красоте фрактальных изображений. Программа имеет очень простой и удобный интерфейс и наряду с возможностью автоматического построения фракталов позволяет полностью управлять данным процессом за счет изменения большого количества настроек (число итераций, цветовая палитра, степень размытия, особенности проецирования, размер изображения и др.). Кроме того, создаваемые изображения могут быть многослойными (режимом смешивания слоев можно управлять) и к ним можно применить целую серию фильтров. Все накладываемые на строящиеся фракталы изменения тут же отражаются в окне просмотра. Созданные фракталы могут быть сохранены в собственном формате программы, либо в одном из основных фрактальных типов благодаря наличию встроенного компилятора. Или экспортированы в растровые изображения или 3D-объекты (если предварительно было получено трехмерное представление фрактала).
В списке возможностей программы:

точная цветовая настройка, обеспечивающая плавные градиентные переходы цветов друг в друга;

одновременное построение нескольких фракталов в разных окнах;

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

создание трехмерных представлений фракталов на основе обычных двумерных изображений;

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

5. Программа Apophysis


Apophysis - интересный инструмент для генерации фракталов на основе базовых фрактальных формул. Созданные по готовым формулам фракталы можно редактировать и неузнаваемо изменять, регулируя разнообразные параметры. Так, например, в редакторе их можно трансформировать, либо изменив лежащие в основе фракталов треугольники, либо применив понравившийся метод преобразования: волнообразное искажение, перспективу, размытие по Гауссу и др. Затем стоит поэкспериментировать с цветами, выбрав один из базовых вариантов градиентной заливки. Список встроенных заливок достаточно внушителен, и при необходимости можно автоматически подобрать наиболее подходящую заливку к имеющемуся растровому изображению, что актуально, например, при создании фрактального фона в том же стиле, что и иные изображения некоего проекта. При необходимости несложно подрегулировать гамму и яркость, изменить фон, масштабировать фрактальный объект и уточнить его расположение на фоне. Можно также подвергнуть результат разнообразным мутациям в нужном стиле. По окончании следует задать размеры конечного фрактального изображения и записать его визуализированный вариант в виде графического файла (jpg, bmp, png).

6. Программа Mystica


Mystica - универсальный генератор уникальных фантастических двумерных и трехмерных изображений и текстур, которые в дальнейшем можно использовать в разных проектах, например в качестве реальных текстур для Web-страниц, фонов Рабочего стола или фантастических фоновых изображений, которые могут быть задействованы, например, при оформлении детских книг. Пакет отличается нестандартным и достаточно сложным интерфейсом и может работать в двух режимах: Sample (ориентирован на новичков и содержит минимум настроек) и Expert (предназначен для профессионалов). Создаваемые изображения могут иметь любой размер и затем экспортироваться в популярные графические 2D-форматы. Прямо из окна программы их можно отправить по электронной почте, опубликовать в Html-галерее или создать на их основе видеоролик в форматах divx, mpeg4 и др. Встроенный трехмерный движок программы может быть использован при создании трехмерных сцен для компьютерных игр, например фантастических фонов и ландшафтов.
Генерация изображений осуществляется на основе заложенных в пакете фрактальных формул, а система подготовки изображения многоуровневая и включает очень подробную настройку цветов, возможность простейших трансформаций генерируемых элементов и массу прочих преобразований. В их числе применение фильтров, изменение освещения, корректировка цветовой гаммы, яркости и контрастности, изменение использованного при генерации материала, добавление к изображению "хаотических" структур и пр.

Заключение

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

Бесспорными достоинствами фрактала являются:

    Малый размер исполняемого файла при большом изображении.

    Бесконечная масштабируемость и увеличение сложности картинки.

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

    Относительная легкость в создании сложных композиций.

    Фотореалистичность.

Недостатки:

    Все вычисления делаются компьютером, чем сложнее изображение, тем больше загруженность ЦП и ОЗУ.

    Неосвоенность технологии.

    Плохое распространение и поддержка различными системами.

    Небольшой спектр создания объектов изображений.

    Ограниченность материнских математических фигур.

В общем то, как всегда. У всего есть достоинства и недостатки. Графика тем более грешит и тем, и тем.

Литература

    Мандельброт, Б. Фрактальная геометрия природы / Б. Мандельборт.−

М.: «Институт компьютерных исследований», 2002.

    Федер, Е. Фракталы / Е. Федер. − М: «Мир», 1991.

В лесах фрактальной графики

Дмитрий Шахов, фрилансер, г.Москва

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

Прежде чем перейти к рассмотрению фрактальной графики, рассмотрим, в чем суть компьютерной, или «машинной», графики, а также общепринятую классификацию компьютерной графики (Computer Graphics, CG). Это понятие появилось относительно недавно, в 60-х годах прошлого столетия, когда были изобретены электронные вычислительные устройства. Термин «компьютерная графика» трактуется в различных источниках по-разному. Некоторые определяют его как область информатики, занимающуюся вопросами получения различных изображений (рисунков, чертежей, мультипликации) на компьютере. Компьютерная графика охватывает все виды и формы представления изображений, доступные для человеческого восприятия на экране монитора или в виде копии на внешнем носителе (бумаге, ткани, кинопленке и т.п.). В других источниках компьютерная графика называется специальной областью информатики, изучающей методы и средства создания и обработки изображений с помощью программно-аппаратных вычислительных комплексов.

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

В зависимости от способа формирования изображений компьютерная графика делится на растровую, векторную и фрактальную (рис. 1).

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

Рис. 1. Типы компьютерной графики: а — растровая; б — векторная; в — фрактальная

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

Рис. 2. Пример фрактальности в природе — капуста Романеску

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

Фрактальная графика относительно молода по сравнению с растровой и векторной графикой. Основой фрактальной графики является фрактальная геометрия, позволяющая математически описывать различные виды неоднородностей, встречающихся в природе. Понятия «фрактал», «фрактальная геометрия» и «фрактальная графика» появились в конце 1970-х. Слово «фрактал» образовано от латинского fractus и означает «состоящий из фрагментов». Оно было предложено математиком Бенуа Мандельбротом в 1975 году для обозначения нерегулярных, но самоподобных структур. Рождение фрактальной геометрии принято связывать с выходом в 1977 году книги «The Fractal Geometry of Nature» Бенуа Мандельброта. Определение фрактала, данное Мандельбротом: фракталом называется структура, состоящая из частей, которые в каком-то смысле подобны целому. Самоподобие — одно из основных свойств фракталов. Таким образом, фрактальная графика — это вид компьютерной графики, в которой в той или иной мере используются самоподобные структуры (проще говоря, фракталы). Далее мы поговорим о том, что же такое самоподобие и где в природе встречаются фракталы.

Что подразумевается под самоподобием? Капуста Романеску из Италии — самый характерный пример фрактального объекта в природе. Капустные почки у нее нарастают в виде некой спирали (рис. 2), которая называется логарифмической, а число капустных почек совпадает с числом Фибоначчи. Числа Фибоначчи — это элементы числовой последовательности 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946…, в которой каждое последующее число равно сумме двух предыдущих чисел. Свое название они получили в честь средневекового математика Леонардо Пизанского (известного как Фибоначчи). Каждая часть элементов капусты Романеску имеет ту же форму, что и весь кочан. Это свойство повторяется с регулярностью в различных масштабах. По сути эта капуста является природным фракталом. То есть как бы мы ни увеличивали фрактал, после каждого шага мы увидим ту же форму, что характерна для данного фрактала в целом. Таким образом, с фракталами тесно связаны еще два понятия — итерация и рекурсия. Рекурсия — процесс повторения элементов самоподобным образом. Итерация — упрощенно говоря — повторное применение какой-либо математической операции.

На самом деле фрактальные свойства имеет очень большое количество природных объектов — просто мало кто об этом задумывается. Вы можете любоваться облаками на небе, набегающими волнами прибоя, ходить по лесу — и даже не подозревать, что в основе этой красоты лежит математика! Да-да! Исследования фрактальных свойств природных объектов начал проводить еще Бенуа Мандельброт. Оказывается, несмотря на всю сложность природных объектов, многие из них в принципе описываются довольно простыми математическими формулами. Хотя в чистом виде фракталы в природе не существуют. То, что мы наблюдаем, — это так называемые стохастические фракталы. То есть такие фракталы, которые получаются в том случае, если в итерационном процессе случайным образом менять какие-либо его параметры. «Чистый» фрактал можно приближать до бесконечности, поскольку он обладает бесконечной рекурсией, а вот о стохастических фракталах этого сказать нельзя.

Следует отметить, что слово «фрактал» не является математическим термином и не имеет общепринятого строгого математического определения. Оно может употребляться, когда рассматриваемая фигура обладает какими-либо из следующих свойств:

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

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

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

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

Один из простейших примеров линейного фрактала — кривая Коха (1904 год, немецкий математик Хельга фон Кох).

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

Одним из первых нелинейные фракталы описал французский математик Гастон Жюлиа еще в 1918 году. Но в его работе отсутствовали изображения исследованных им множеств и термин «фрактал».

В наше время компьютеры позволили получить изображения множеств Жюлиа (рис. 4а ), которые вместе с множествами Мандельброта(рис. 4б ) являются ныне самыми известными квадратичными фрактальными структурами.

Оба типа фракталов возникают в результате реализации на комплексной плоскости самого простого нелинейного алгоритма.

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

Фрактал — объект, отдельные элементы которого наследуют свойства родительских структур. Поскольку более детальное описание элементов меньшего масштаба происходит по простому алгоритму, описать такой объект можно всего несколькими математическими уравнениями.

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

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

Изменяя и комбинируя окраску фрактальных фигур, можно моделировать образы живой и неживой природы (например, ветви дерева или снежинки), а также составлять из полученных фигур «фрактальную» композицию. Фрактальная графика, так же как векторная и трехмерная, является вычисляемой. Ее главное отличие в том, что изображение строится по уравнению или системе уравнений. Поэтому для выполнения всех вычислений в памяти компьютера ничего, кроме формулы, хранить не требуется.

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

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

В заключение хотелось бы отметить следующее: фрактальная графика — одно из самых необычных и перспективных направлений в компьютерной графике. Результаты, которые можно получить с ее помощью, поражают воображение даже самых искушенных ценителей компьютерного искусства. Так, изображения, создаваемые с помощью программ-фракталогенераторов, порой содержат совершенно фантастические и необычные пейзажи (рис. 5), которые даже не снились художникам-сюрреалистам. И наоборот, с помощью фрактальной графики можно с удивительной точностью изобразить то, что мы видим в окружающем нас мире. Воистину мир фракталов удивителен! 

Продолжение следует.