иваемого прямокутника. Прямокутник розбиваємо на 4 рівних прямокутника, до кожного з яких застосовується та ж процедура. Далі процес повторюється. Чим більше випадкове число - тим більше «рваним» буде малюнок.
Рис.11. Плазма
Якщо ми тепер скажемо, що колір точки це висота над рівнем моря - отримаємо замість плазми - гірський масив. Саме на цьому принципі моделюються гори в більшості програм. За допомогою алгоритму, схожого на плазму, будується карта висот, до неї застосовуються різні фільтри, накладається текстура і т. Д.
Системи ітеріруемих функцій
Метод Систем Ітеріруемих Функцій (Iterated Functions System - IFS) з'явився в середині 80-х років як простий засіб отримання фрактальних структур.
У програмі IFS Builder 3d зібрані останні досягнення в області тривимірного фракталостроітельства. За допомогою IFS Builder 3d, можна будувати тривимірні фрактали, стереозображення (т. Е. 2 ??зображення, подивившись крізь які, можна побачити одне тривимірне) та анімації фракталів - їх рух, політ в глиб і морфинг (зміни форми і перетворення одного фрактала в іншій ) .представляет собою систему функцій з деякого фіксованого класу функцій, що відображають одне багатовимірне безліч на інше. Найбільш проста IFS складається з афінних перетворень площині:
X '= A * X + B * Y + C
Y '= D * X + E * Y + F
У 1988 році відомі американські фахівці в теорії динамічних систем і ергодичної теорії Барнслі і Слоан запропонували деякі ідеї, засновані на міркуваннях теорії динамічних систем, для стискання та зберігання графічної інформації. Вони назвали свій метод методом фрактального стиснення інформації. Походження назви пов'язане з тим, що геометричні образи, що виникають у цьому методі, зазвичай мають фрактальну природу в сенсі Мандельброта.
На підставі цих ідей Барнслі і Слоан створили алгоритм, який, за їх твердженням, дозволить стискати інформацію в 500-1000 разів. Коротенько метод можна описати таким чином. Зображення кодується кількома простими перетвореннями (у нашому випадку аффіннимі), тобто коефіцієнтами цих перетворень (у нашому випадку A, B, C, D, E, F).
Наприклад, закодувавши якесь зображення двома аффіннимі перетвореннями, ми однозначно визначаємо його за допомогою 12-ти коефіцієнтів. Якщо тепер задатися якоїсь початковою точкою (наприклад, X=0 Y=0) і запустити ітераційний процес, то ми після першої ітерації отримаємо дві точки, після другої - чотири, після третьої - вісім і т.д. Через кілька десятків ітерацій сукупність отриманих точок буде описувати закодоване зображення. Але проблема полягає в тому, що дуже важко знайти коефіцієнти IFS, яка кодувала б довільне зображення.
Для побудови IFS застосовують крім афінних й інші класи простих геометричних перетворень, які задаються невеликим числом параметрів. Наприклад, проективні:
X '= (A1 * X + B1 * Y + C1)/(D1 * X + E1 * Y + F1)
Y '= (A2 * X + B2 * Y + C2)/(D2 * X + E2 * Y + F2)
або квадратичні:
X '= A1 * X * X + B1 * X * Y + C1 * Y * Y + D1 * X + E1 * Y + F1
Y '= A2 * X * X + B2 * X * Y + C2 * Y * Y + D2 * X + E2 * Y + F2
перетворення на площині.
Як приклад використання IFS для побудови фрактальних структур, розглянемо криву Коха (Рис.2 {пункт «геометричні фрактали»}) і дракона Хартера-Хейтуея (Рис.5 {пункт «геометричні фрактали»}). Виділимо в цих структурах подібні частини і, для кожної з них обчислимо коефіцієнти афінного перетворення. У афінний колаж буде включено стільки афінних перетворень, скільки існує частин подібних цілого зображення.
Рис 12. Заготівля для побудови IFS дракона Хартера-Хейтуея
Побудуємо IFS для дракона Хартера-Хейтуея. Для цього розташуємо перше покоління цього фрактала на сітці координат дисплея 640 x 350 (Рис.12). Позначимо точки вийшла ламаної A, B, C. За правилами побудови ({пункт «геометричні фрактали»}) у цього фрактала дві частини, подібні цілого - на рис.12 це ламані ADB і BEC. Знаючи координати кінців цих відрізків, можна обчислити коефіцієнти двох афінних перетворень, що переводять ламану ABC в ADB і BEC:
X '= - 0.5 * X - 0.5 * Y + 490
Y '= 0.5 * X - 0.5 * Y + 120
X '= 0.5 * X - 0.5 * Y + 340
Y '= 0.5 * X + 0.5 * Y - 110
Задавшись початковій стартовою точкою (наприклад, X=0 Y=0) і ітераційно діючи на неї цієї IFS, після десятого ітерації на екрані отримаємо фрактальну структуру, зображену на рис.13, яка представляє собою дракон Хар...