Тема 4. Фрактальна графіка

Вступ

Метою вивчення цієї теми є засвоєння студентами поняття фрактальної  графіки, її основ, значення, види фрак талів, їх застосування і особливості побудови, основні редактори цього виду графіки. 

 

Теоретичні основи

1. Поняття фрактальної графіки    

2. Класифікація фракталів

3. Основні програми фрактальної графіки

 

1. Поняття фрактальної графіки    

Поняття фрактал і фрактальна геометрія, які з’явилися в кінці 70-х, з середини 80-х міцно увійшли у вжиток математиків і програмістів. Слово фрак тал утворене від латинського fractus і в перекладі означає складається з фрагментів. Воно було запропоноване Бенуа Мандельбротом в 1975 році для позначення нерегулярних, проте слабоподібних структур, якими він займався.

Народження фрактальної геометрії прийнято пов'язувати з виходом в 1977 році книги Мандельброта «The Fractal Geometry of Nature». У його роботах використані наукові результати інших учених, що працювали в 1875 – 1925 роках в тій же області (Пумнкаре, Фату, Жюліа, Кантор, Хаусдорф). Але тільки у наш час наші часи| вдалося об'єднати їх роботи в єдину систему. Визначення фрактала, дане Мандельбротом: фракталом називається структура, що складається з частин, які подібні до цілого. Самоподібність – одна з основних властивостей фракталів. Об'єкт називають  самоподібним, коли збільшені частини об'єкту схожі на сам об'єкт і один до одного.

Фрактальна графіка| базується| на фрактальній| геометрії|.

Найвідомішими фрактальними| об’єктами| є дерева: від| кожної| гілки| відходять| меньші|, схожі| на неї|, від| них - ще| меньші|. За окремою| гілкою| математичними| методами можна| відслідкувати| властивості| всього| дерева. Фрактальні властивості| мають| такі| природні| об’єкти,| як: сніжинка|, що| при збільшенні| виявляється| фракталом; за фрактальними| алгоритмами ростуть| крістали| та рослини|.

Поява нових| елементів| меншого| розміру| відбувається| за певним|вибачимо| алгоритмом. Очевидно, що| описати| подібні| об’єкти| можна| всього| лише| декількома| математичними| рівняннями|!

Значення фракталів у машинній графіці сьогодні досить значне. Вони приходять на допомогу, наприклад, коли потрібно, за допомогою декількох коефіцієнтів, задати лінії і поверхні дуже складної форми. З точки зору машинної графіки, фрактальна геометрія незамінна під час генерації штучних хмар, гір, поверхні моря. Фактично знайдений спосіб легкого уявлення неевклідових об’єктів, взірці яких дуже схожі на природні.

Однією з основних властивостей фракталів є самоподібність. У самому простому випадку невелика частина фракталу містить інформацію про весь фрактал. Фрактал – структура, яка складається з частин, які в якомусь розумінні подібні цілому.

Таке визначення фракталу дав Мандельброт.

Фрактальна графіка|, як і векторна|, заснована| на математичних| обчисленнях|. Однак, базовим| елементом| є математична| формула, ніяких| об'єктів| у|біля| пам'яті| комп'ютера| не зберігається| і зображення| будується| виключно| по рівняннях|. Фрактальна графіка| міститься| у|біля| пакетах для наукової| візуалізації| для побудови|, як найпростіших| структур так і складних| ілюстрацій, що| імітують природні| процеси| та тривимірні| об'єкти|.

 

2. Класифікація фракталів

Існують такі види фракталів:

1) геометричні,

2) алгебраїчні,

3) стохастичні,

4) системи ітеруючих функцій.

Геометричні фрактали

Саме з них і починалася історія фракталів. Цей тип фракталів отримують шляхом простих геометричних побудов. Зазвичай при побудові цих фракталів поступають так: береться «приманка» - аксіома - набір відрізків, на підставі яких будуватиметься фрактал. Далі до цієї «приманки» застосовують набір правил, який перетворить її у будь-яку геометричну фігуру.

Фрактали цього класу самі наочні. У двомірному випадку їх отримують за допомогою деякої ломаної (чи поверхні в трьохмірному випадку), яка називається генератором. За один крок алгоритму кожен із відрізків, які складають ломану, замінюється на ломану-генератор, у відповідному масштабі. У результаті безкінечного повторення цієї процедури, отримується геометричний фрактал.

Для побудови|шикування| геометричних фрактальних кривих використовуються рекурсивні алгоритми.  Рекурсія використовується при вирішенні завдань|задач|, які можуть бути розкладені|розкладати| на декілька підзадач. Таким чином, застосування|вживання| рекурсії доцільне при побудові|шикуванні| фрактальних кривих, оскільки|тому що| вони володіють такою властивістю як самоподібність.

 

Прикладом такого фрактального об’єкта є тріадна крива Кох (рис. 4.1).

Безымянный13 

Рис. 4.1. Побудова триадної кривої Кох

 

На ньому подано три покоління кривої. При n прямуючому до безкінечності крива Кох стає фрактальним об’єктом.

У машинній графіці застосування геометричних фракталів необхідне під час отримання зображень дерев, кущів, берегової лінії. Двомірні геометричні фрактали застосовуються для створення об’ємних текстур.

Прикладами геометричних| фракталів| слугують: сніжинка Коха, лист, трикутник Серпинського, криві Гільберта, криві Серпинського, трикутник Серпинського, рис. 4.2-4-7 |

Загальне - Основи

Загальне - Основи

Рис. 4.2. Сніжинка Коха

Рис. 4.3. Лист

 

gilb

Рис. 4.4. Криві Гільберта

serp

Рис. 4.5. Криві Серпинського

serp_tr

Рис. 4.6. Трикутник Серпинського

 

Алгебраїчні фрактали

Це сама значна група фракталів. Свою назву вони отримали за те, що їх будують, на основі алгебраїчних формул деколи досить простих.

Методів отримання алгебраїчних фракталів декілька. Один із методів являє собою багатократний (ітераційний) розрахунок функції , де Z – комплексне число, а f - деяка функція. Розрахунок даної функції продовжується до виконання певної умови. І коли ця умова виконається – на екран виводиться точка. При цьому значення функції для різних точок комплексної площини може мати різну поведінку:

1 з плином часу прагне до безкінечності,

2. прагне до 0,

3. приймає декілька фіксованих значень і не виходить за їх межі,

4. поведінка хаотична, без будь-яких тенденцій.

Прикладом цього виду фракталів є множина Мандельброта (рис. 4.7).

Безымянный14

 

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

Щоб проілюструвати алгебраїчні фрактали звернемося до множини Мандельброта.

Для його побудови нам необхідні комплексні числа. Комплексне число - це число, що складається з двох частин, - дійсною і уявною і позначається воно a+bi. Дійсна частина а це звичайне число в нашому уявленні, а bi - уявна частина, i - називають уявною одиницею, тому, що якщо ми піднесемо її в квадрат, то отримаємо -1.

Комплексні числа можна| додавати|, віднімати|, перемножувати|, ділити|, підносити| до ступеня| і отримувати| корінь|, не можна| тільки| їх порівнювати|. Комплексне число можна| зобразити| як точку| на площині|, у|біля| якої| координата Х це| дійсна| частина| а, а Y це| коефіцієнт| при уявній| частині| b. Функціональна множина Мандельброта визначається як Zn+1=ZnZn+C.

 

Стохастичні фрактали

Стохастичні фрактали, отримуються в тому випадку, коли в ітераційному процесі випадковим чином змінювати будь-які його параметри. При цьому отримуються об’єкти дуже схожі на природні – несиметричні дерева, зрізані берегові лінії і т.д. (рис. 4.8). Двомірні стохастичні фрактали застосовуються під час моделювання рельєфу місцевості і поверхні моря.

Безымянный1

Рис. 4.8. Стохастичні фрактали

 

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

Тіповий передставник даного класу фракталів «Плазма».
Для її побудови візьмемо прямокутник і для шкіряного його кута визначимо колір. Далі знаходимо центральну точку прямокутника і розфарбовуємо її у колір рівний середньому арифметичному квітів по кутах прямокутника плюс деяке випадкове число. Чим більше випадкове число - тим більше
«рваним» буде малюнок. Якщо, наприклад, сказати, що колір крапки це висота над рівнем морити, то отримаємо замість плазми - гірський масив. Саме на цьому принципі моделюються гори в більшості програм. За допомогою алгоритму, схожого на плазму будується карта висот, до неї застосовуються різні фільтри, накладаємо текстуру.

 

Системи ітеруючих функцій (IFS – Iterated Function Systems)

Ця група фракталів набула широкого поширення завдяки роботам Майкла Барнслі з технологічного інституту штату Джорджія. Він намагався кодувати зображення за допомогою фракталів. Запатентувавши декілька ідей по кодуванню зображень за допомогою фракталів, він заснував фірму «Iterated Systems», яка через деякий час випустила перший продукт «Images Incorporated», в якому можна було зображення переводити з растрової форми у фрактальну FIF.

Це дозволяло добитися високих ступенів стиснення. При низьких ступенях стиснення якість малюнків поступалася якості формату JPEG, але при високих картинки виходили якіснішими. У будь-якому випадку цей формат не прижився, але роботи по його удосконаленню ведуться до цих пір. Адже цей формат не залежить від роздільної здатності зображення. Оскільки зображення закодоване за допомогою формул, то його можна збільшити до будь-яких розмірів і при цьому з’являтимуться нові деталі, а не просто збільшиться розмір пікселів.

Загальне - Основи

Якщо в L-systems (алгебраїчних фракталах) йшлося про заміну прямої лінії якимсь полігоном, то в IFS мі в ході кожної ітерації замінюємо якийсь полігон (квадрат, трикутник, круг) на набір полігонів, кожен із яких піддадуть аффінним перетворенням. При аффінних перетвореннях початкове зображення змінює масштаб, паралельно переноситься уздовж кожної з осей і обертається на деякий кут.

 

3. Основні програми фрактальної графіки

Серед програмних| засобів| можна| виділити| продукти| фірми| Golden| SoftWare|:

Surfer| - створення| тривимірних| поверхонь|;

Grapher| - створення| двовимірних| графіків|;

Map| Viewer| - побудова| кольорових| карт.

Surfer| дозволяє| обробити| та візуалізувати| двовимірні| набори даних|, що| описані| функцією| z=f| (x,y|). Можна побудувати| цифрову| модель поверхні|, застосувати| допоміжні| операції| і візуалізувати| результат.

Grapher| призначений| для обробки| та виводу| графіків|, що| описані| функціями| y=f|(x). Не має| обмежень| по числу графіків| на одному малюнку або| числу кривих| в одному графіку| і дозволяє| розмістити| декілька| осей з різними| масштабами та одиницями| виміру|.

Map| Viewer| дозволяє| вводити| та корегувати| карти| - змінювати| масштаб, перетворювати| координати|, обробляти| й виводити| у|біля| графічному| вигляді| числову| інформацію, пов'язану| з картами.

Пакет Iris| Explorer| (фірма| Graphics|) призначена| для створення| моделей погодних| умов|глузду| та океану.

Пакет Earth| Watch| (фірма| Earth| Watch|) призначений| для моделювання| та демонстрації| тривимірного| зображення| метеоумов| над Землею|грунтом|, будувати| топологічні| поверхні| по космічних| знімках| і прогнозувати| погоду на тиждень| вперед.

Модуль Chart| у|біля| стандартному пакеті| MS| Office| дозволяє| легко й наочно| створити| графіки| на основі| даних|, що| знаходяться| у|біля| таблиці|. Корістувач може| перетворити| графіки| у|біля| любу| з 5 основних| форм графіків|: гістограма|; лінії|; площі|; у полярних| координатах; поверхні|.

Також, при зміні| даних| у|біля| таблиці|, змінюється| відповідне| значення| у|біля| графіку|.

Програма Art Dabbler

Знайомство з основами фрактальної графіки краще всього почати з пакету Art Dabbler. Цей редактор (створений фірмою Fractal Design, а зараз належний Corel) фактично є усіченим варіантом програми Painter. Це відмінна програма для навчання не тільки комп'ютерній графіці, Але перш за все азам малювання. Малий обсяг необхідної пам'яті (для його установки необхідно всього 10 Мбайт), а також простий інтерфейс, доступний навіть дитині, дозволяють використовувати його в шкільній програмі. Як і растровий редактор MS Paint, фрактальний редактор Art Dabbler особливо ефективний на початковому етапі освоєння комп'ютерної графіки.

Головна увага розробниками пакету Art Dabbler була приділена двом чинникам:

- створенню спрощеного інтерфейсу, основним елементом якого є коробки інструментальних наборів (званих тут висувними ящиками);

- можливості використання пакету як повчальна програма. Для реалізації цієї мети в комплект постачання пакету разом з самою програмою включений самовчитель "Вчися малювати" і повчальний фільм на компакт-диску. Пропоновані в них уроки малювання дозволяють крок за кроком спостерігати за процесом створення досвідченими художниками кольорових зображень засобами пакету Art Dabbler.

Рядок меню включає шість пунктів: стандартні для більшості програм - File, Edit і Help, а також Effects, Options і Tutors, які присутні в більшості графічних програм і не потребують додаткових коментарів.

Art Dabbler надає комплект ефектів (меню Effects), які можуть бути використані для зміни або спотворення зображень. Наприклад, ефект Texturize створює текстури паперу, полотна і тому подібне, розширюючи творчі можливості художника.

Слід зазначити, що в Art Dabbler висувними ящиками називаються всі інструментальні засоби точно так, як і, наприклад, в Photoshop аналогічні засоби називаються палітрами, а в CORELDRAW - докерами. У них зберігаються пензлі, олівці, гумка і інші інструменти, для активізації яких досить натиснути відповідну їм піктограму. На передніх стінках ящиків відображається невелика кількість кнопок і ручка, натиснувши яку користувач дістає доступ до всього набору здійснюваних через нього операцій завдяки додатковим кнопкам, що відкриваються|відчиняють.

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 і ін. Вбудований трьохмірний двигун програми може бути використаний при створенні трьохмірних сцен для комп'ютерних ігор, наприклад фантастичних фонів і ландшафтів.

Генерація зображень здійснюється на основі закладених в пакеті фрактальних формул, а система підготовки зображення багаторівнева і включає дуже детальне налаштування квітів, можливість простих трансформацій елементів, що генеруються, і масу інших перетворень. У їх числі застосування фільтрів, зміна освітлення, коректування колірної гамми, яскравості і контрастності, зміна використаного при генерації матеріалу, добавляти до зображення "хаотичних" структур і ін.

 

22. Що таке фрактал?

23. Коли об’єкт називається самоподібним?

24. Які існують види фракталів?

25. Яким чином утворюють геометричні фрактали?

26. Застосування рекурсивних алгоритмів

27. Яка властивість рекурсії?

28. Для яких зображень застосовуються геометричні фрактали?

29. Приклади геометричних фракталів

30. З якого виду фракталів почалася історія фракталів?

31. Сама значна група фракталів

32. Що собою являє багатократний (ітераційний) розрахунок отримання алгебраїчних фракталів?

33. Як визначається функціональна множина Мандельброта?

34. Як отримуються стохастичні фрактали?

35. Що таке афінні перетворення?

36. Програмні засоби фрактальної графіки фірми Golden SoftWare

37. З якого пакету краще всього почати вивчення фрактальної графіки?

38. Один із кращих безкоштовних генераторів фрактальних зображень

39. Універсальний генератор унікальних фантастичних двовимірних і трьохмірних зображень і текстур

40. Яка програма є кращим рішенням для створення унікальних фрактальних зображень професійної якості?

41. Принцип створення фрактальних зображень у програмі Ultra Fractal

42. Яким чином здійснюється генерація фракталів у програмі Fractal Explorer?

43. Найбільш популярні системи растрової ілюстраційної комп’ютерної графіки професійного класу

44. Розповсюджені програми растрової ілюстраційної комп’ютерної графіки професійного класу

45. Що таке графічні фільтри?

46. Застосування каналів

47. Що таке макрос?

48. Розповсюджені графічні редактори Microsoft

49. Що таке фрейми?

50. Найбільш поширені та більш спеціалізовані графічні редактори для роботи з тим або іншим редактором векторної графіки

51. Універсальні web-редактори

52. Призначення графічного редактора Microsoft Photo DRAW

53. Призначення піктограм

54. Лідер на платформі Macintosh і Windows

55. Професійні графічні пакети, які роблять можливим гнучкий монтаж