Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||
Príklady L-SystémovKochova vločka - príklad fraktáluSkôr než pristúpime k príkladom generovania fiktívnych rastlín, je vhodné objasniť niektoré kľúčové pojmy, uvedené už v úvode podkapitoly o L-systémoch. Fraktálom nazval matematik Benoit Mandelbrot geometrický útvar s týmito vlastnosťami :
Sebapodobnosťou sa rozumie to, že nech daný útvar pozorujeme v akomkoľvek merítku, vykazuje stále rovnaký charakteristický tvar. Dimenzia D je v tomto prípade definovaná ako N = LD, kde N je počet kópií pôvodného útvaru pri L-násobnom zväčšení lineárneho rozmeru, napr. štvorec má dimenziu 2 ( 4 = 23 ) a kocka dimenziu 3 ( 8 = 22). Medzi najznámejšie fraktály patrí krivka - tzv. Kochova vločka, navrhnutá H. Kochom: každá úsečka je nahradená lomenou čiarou, ktorá vznikne zámenou prostrednej tretiny pôvodnej úsečky dvomi stranami rovnoramenného trojuholníka :
V náhradnej lomenej čiare sa pôvodná úsečka F vyskytuje štyrikrát, lineárne zväčšenie je trojnásobné, teda platí 4 = 3D a dimenzia Kochovej vločky je D = 1.2618. Obvod vločky konverguje k nekonečnu (O = 3 * 4/3 * 4/3 * 4/3 * 4/3 ... ), ale jej ohraničená plocha má konečný obsah, menší ako obsah kružnice, opísanej pôvodnému trojuholníku. Vločka KochovaPomocou predchádzajúceho appletu nastáva generovanie Kochovej vločky. Pravidlá, pomocou ktorého prebieha generovanie, boli spomenuté vyššie. Prvé tri iterácie, to jest 0, 1 a 2, sú generované automaticky, a to nasledovne:
Sierpinského trojuholníkvznikne odstránením stredného trojuholníku s vrcholmi v stredoch hrán pôvodného trojuholníka. V ďalších iteráciách sa odstraňujú analogicky stredy zostávajúcich trojuholníkov. Nasledujúci applet umožňuje sledovať axiómu a prvé štyri iteračné kroky. Konštrukciu možno chápať tiež ako pripojenie dvoch ďalších rovnoramenných trojuholníkov k dvom vrcholom pôvodného a následné dvojnásobné zmenšenie. Platí teda (ešte pred zmenšením) 3 = 2D a D = 1.5849625. Obsah neodstránenej plochy konverguje k nule a jej obvod konverguje k nekonečnu. Tento fraktál sa môže generovať i pomocou 1D CA (1-rozmerný celulárny automat) (zvoľte sadu pravidiel 90). Nasledujúci applet umožňuje sledovať axiómu a prvé štyri iteračné kroky. X je pomocný, tzv. negrafický symbol, ktorý korytnačia grafika jednoducho ignoruje. Jeho náhradou sa vytvárajú v ďalších iteráciách vpísané menšie trojuholníky. Applet sa ovláda tlačidlami Sierpinského trojuholník
L-systém nie je editovateľný. Na predchádzajúcom applete je generovaný Sierpinskeho trojuholník. Je generovaný pomocou nasledovných pravidiel:
Tieto pravidlá sa líšia od pravidiel použitých vo veľkom aplete:
Pri použití týchto pravidiel dochádza ku prekresľovaniu niektorých F, inak povedané cez niektoré F-ká sa kreslí dva krát, čo by pri použití farebného kreslenia mohlo spôsobiť problémy a menší chaos u používateľov, preto sme zvolili iné pravidlá, kde takéto problémy nenastávajú. Farebné kreslenie znovu prebieha v prvých troch krokoch:
Použitie zásobníka pri generovaní rastlínDoterajšie krivky bolo možné nakresliť jediným ťahom (neprerušovaným pohybom korytnačky). Pre štruktúru rastlín sú ale typické vetvenia, t.j. korytnačka sa musí vrátiť po nakreslení jednej vetvy bez kreslenia čiary. Pre takýto pohyb "naprázdno" býva definovaný symbol f. Vetvenia rastlín majú ale obyčajne rekurzívny charakter a pre tento účel je viac vhodné použiť zásobník. Do neho sa v mieste vetvenia uložia parametre korytnačky (smer, prípadne ďalšie údaje : farba, hrúbka čiary...) a z neho sa potom vyberú po nakreslení prvej vetvy a použijú sa pre začiatok kreslenia vetvy druhej. Obvykle sa pre operáciu vkladania a výberu používajú otváracia a zatváracia hranatá zátvorka. Jednoduché "krovie" je možné generovať napríklad L-systémom : Virtuálna rastlina generovaná L-systémom
|
||
Kontakt: Marek Bundzel |