Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||
Využitie L-systémov pri modelovaní vývinu rastlínZákladné princípyL-systémy boli pôvodne predstavené na modelovanie vývinu jednoduchých viacbunkových organizmov so zameraním na delenie, rast a smrť jednotlivých buniek. Následne sa rozsah aplikácií L-systémov rozšíril na vyššie rastliny a zložité vetvené štruktúry (napr. súkvetia), ktoré možno opísať ako určitú konfiguráciu modulov v priestore. Modulom môžeme označiť ľubovoľnú diskrétnu konštrukčnú jednotku, ktorá sa počas vývinu rastliny opakuje, napr. rastový vrchol, časť stonky medzi kolenami, kvet alebo vetva. Cieľom modelovania na modulárnej úrovni je opísať vývin rastliny ako celku, so zameraním sa na emergenciu tvaru rastliny ako integráciu vývinu jednotlivých konštrukčných jednotiek. L-systémy majú jednu veľkú výhodu: jednoduché L-systémy s malým počtom pravidiel dokážu opísať veľmi zložité objekty. Avšak napriek stručnosti L-systémov ich konštrukcia nie je triviálna úloha. Jedným z prístupov k modelovaniu rastlín je aj metodológia založená na simulovaní vývinu reálnych rastlín, teda ide o snahu zachytiť podstatu vývinového procesu, ktorý vedie k určitej forme. Tento vývinový prístup k modelovaniu rastlín má nasledovné charakteristické vlastnosti:
Riadiace mechanizmy v rastlináchPredpokladajme, že chceme modelovať jednoduchú rastlinu s nerozvetvenou stonkou, z ktorej vyrastajú listy a s jedným kvetom na vrchole stonky. Tento model môžeme opísať nasledujúcim L-systémom:
Symbol a reprezentuje rastový vrchol. V priebehu vývinu rastliny produkuje tento rastový vrchol v každom derivačnom kroku jeden nový segment stonky reprezentovaný symbolom
Modely rastlinných orgánovPríkazy pre korytnačku uvedené dosiaľ umožňovali vytvárať iba obrazce skladajúce sa z úsečiek. V nasledujúcej kapitole sa budeme venovať modelovaniu rastlinných orgánov pomocou plôch a rovinných polygónov. Vkladanie predom definovaných plôch Štandardná metóda počítačovej grafiky využíva pre definovanie povrchov bikubické plochy. Plocha je definovaná troma polynómami tretieho stupňa s parametrami
kde Vyvíjajúce sa modely Predom definované plochy "nerastú". Pri ich vkladaní môžeme meniť ich veľkosť alebo farbu, ale ich tvar ostáva nezmenený. Ak chceme plne modelovať vývin rastliny, je nevyhnutné mať k dispozícii mechanizmus na zmenu nielen veľkosti, ale aj tvaru plôch v čase. Jednou možnosťou je prejsť obrysy plochy s korytnačkou a vzniknuté polygóny vyplniť. Pre tento účel zavedieme ďalšie nové príkazy pre korytnačku:
Pre vytváranie polygónov sa používajú dve základné metódy. Prvou z nich je pomocou príkazov 'F' a 'f' obísť s korytnačkou po obvode polygónu a tak zaznamenať všetky jeho vrcholy. Druhá možnosť je pohybovať sa s korytnačkou pomocou príkazov 'G' a 'g' po akejsi kostre polygónu, skladajúcej sa napríklad z niektorých jeho uhlopriečok a jeho vrcholy zaznamenať pomocou príkazu '.'. Ak chceme generovať plochu so zložitejším okrajom alebo plochu, ktorá nie je rovinná, je výhodnejšie vygenerovať stromovú štruktúru, ktorá bude tvoriť kostru plochy a vrcholy polygónu definovať pomocou príkazu '.'. Týmto spôsobom je možné pomocou množiny polygónov generovať aj pomerne zložité plochy. Modifikujme význam príkazov '{' a '}'. Príkaz '{' uloží práve vytváraný polygón na zvláštny zásobník ( iný ako zásobník na ktorý sa ukladajú stavy korytnačky ) a ako aktuálny bude vytvorený nový prázdny polygón. Príkaz '}' uzavrie aktuálny polygón, zaradí ho do generovaného obrazca a vyberie z vrcholu zásobníku polygón, ktorý sa stane aktuálnym. Tento spôsob interpretácie príkazov umožňuje vnáranie polygónových zátvoriek '{' a '}' v reťazci. Z týchto trojuholníkov sa skladá celý list. Na obrázku je zobrazený vývin tohto listu: ![]() Modely zložených listov Doteraz sme sa zaoberali modelovaním rastlinných orgánov pomocou plôch a polygónov. Ak však chceme generovať niektoré zložité, sebepodobné štruktúry, napríklad listy papradia a podobne, nie je táto metóda príliš vhodná vzhľadom k veľkej členitosti týchto plôch. Pri generovaní týchto plôch sa vrátime k obrazcom zloženým z úsečiek. Nasledujúci L-systém generuje rôzne tvary listov papradia v závislosti na hodnotách konštánt
Na obrázku je päť listov vygenerovaných týmto L-systémom: ![]() Tropizmus
Vyššie opísané nástroje pre modelovanie rastlín popisujú tvar rastliny relatívne k počiatočnému stavu korytnačky. Avšak pri vývine rastlín obvykle hrajú určitú úlohu aj absolútne smery. Smer rastu rastliny je ovplyvňovaný gravitáciou (geotropizmus), natočenie listov býva závislé na smere k hlavnému zdroju svetla (fototropizmus), atď. Tieto vplyvy je možné modelovať nasledovným spôsobom. Je daný vektor |
||
Kontakt: Marek Bundzel |