АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция
|
РОЗДІЛ ІІ. L-системи
Поняття L -систем, тісно пов'язане з самоподібними фракталами, з'явилося тільки в 1968 році завдяки Арістріду Лінденмайеру. Спочатку L -системи були введені при вивченні формальних мов, а також використовувалися в біологічних моделях селекції. З їх допомогою можна будувати багато відомих самоподібних фракталів, як сніжинка Коха і серветка Серпінського. Деякі інші класичні побудови, наприклад криві Пеано (роботи Пеано, Гільберта, Серпінського), також укладаються в цю схему. І звичайно, L -системи відкривають шлях до нескінченного різномаїття нових фракталів, що і послужило причиною їх широкого застосування в комп'ютерній графіці для побудови фрактальних дерев і рослин. Розглянуті в цій роботі L -системи обмежуються випадком детермінованих L -систем і графікою на площині. Для графічної реалізації L -систем використовується так звана Тертл - графіка (turtle - черепаха). При цьому точка (черепашка) рухається по екрану дискретними кроками, прокреслюючи свій слід, але при необхідності може переміщуватися без малювання. У нашому розпорядженні є три параметри (x, y, a), де (x, y) --- координати черепашки, a --- напрямок, в якому вона дивиться. Черепашка навчена інтерпретувати і виконувати послідовність команд, що задаються кодовим словом, літери якого читаються зліва направо. Кодове слово являє собою результат роботи L- системи і може включати наступні літери:
F
| переміститися вперед на один крок, прорисовуючи слід.
| [
| Зберегти позицію
| ]
| Відновити позицію
| +
| Збільшити кут a на величину q
| -
| Зменшити кут a на величину q
| Розмір кроку і величина збільшення по куту q задаються заздалегідь і залишаються незмінними для всіх переміщень черепашки. Якщо початкове напрямок руху а (кут, що відраховується від позитивного напрямку осі Х) не зазначено, то вважаємо а рівним нулю. Кілька прикладів ілюструють застосування команд розгалуження (позначаються ], [) і допоміжних змінних (позначаються X, Y, і т.д.). Команди розгалуження використовуються для побудови дерев рослин, а допоміжні змінні помітно полегшують побудову деяких L -систем. Формально, детермінована L -система складається з алфавіту, слова ініціалізації, званого аксіомою або ініціатором, і набору правил, що вказують, як слід перетворювати слово при переході від рівня до рівня (від ітерації до ітерації). Наприклад, можна замінювати букву F за допомогою правила F > F -F ++ F- F, що відповідає L- системі для сніжинки Коха, розглянутої нижче. Символи +, -, ], [ не оновлюються, а просто залишаються на тих місцях, де вони зустрілися. Оновлення букв в даному слові передбачається одночасним, тобто букви слова одного рівня оновлюються раніше будь-якої літери наступного рівня. L -система, відповідна сніжинці Коха (рис. 1.1.1), задається наступним чином: p = 60 * Аксіома: F + + F + + F Твірне правило: F- > F -F + + FF Графічне подання аксіоми F + + F + + F --- рівносторонній трикутник. Черепашка робить один крок вперед, потім кут а збільшується на 2 /3 і черепашка робить ще один крок. На першому кроці кожна буква F у слові - ініціатора F + + F + + F замінюється на F -F + + F-F:
(F -F + + F -F) + (F -F + + F -F) + (F -F + + F -F) і т.д. Ось ще деякі фрактали, побудовані з використанням L -системи:
Рис. 2.1. Дракон Хартера-Хатвея
і його L-система: p = 90 * Аксіома: FX Твірні правила: X-> X + YF + Y->-FX-Y
Рис 2.2. Рослина після 8 ітерацій
p = 11*
Аксіома:--------C
Твірні правилa: C->N[--C]N[++C]N+C
N->NNF
P->C 1 | 2 | 3 | Поиск по сайту:
|