Zbierka - L-systém: Rozdiel medzi revíziami
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 10: | Riadok 10: | ||
<div><div>Inštrukcie pre učiteľov:</div><span>[https://kempelen.dai.fmph.uniba.sk/design/index.php/In%C5%A1trukcie_-_L-syst%C3%A9m L-systém]</span></div> | <div><div>Inštrukcie pre učiteľov:</div><span>[https://kempelen.dai.fmph.uniba.sk/design/index.php/In%C5%A1trukcie_-_L-syst%C3%A9m L-systém]</span></div> | ||
</div> | </div> | ||
<p>Keďže sme už s rekurziou oboznámení, dokážeme ju použiť aj na | <p>Keďže sme už s rekurziou oboznámení, dokážeme ju použiť aj na zložitejšie modely akým môžu byť napríklad Lindenmayerove systémy (l-systémy). L-systémy sú formálne systémy, ktoré boli pôvodne vyvinuté ako modely rastu buniek v rastlinách. Sú definované pomocou abecedy symbolov a sady pravidiel pre transformáciu symbolov. L-systémy sa používajú na generovanie fraktálov a iných fraktálnych štruktúr tým, že rekurzívne aplikujú pravidlá na počiatočnú sekvenciu symbolov, čím vytvárajú komplexné a detailné obrazce. Tu máme príklad jednoduchého 2D fraktálu generovaného l-systémom:<br>[[File:l-system_generating_fractal.png|alt=obrázok generovania l-systému|420px]]</p> | ||
</div> | </div> | ||
<br clear=all> | <br clear=all> |
Verzia z 02:07, 5. máj 2024
L-systém
Keďže sme už s rekurziou oboznámení, dokážeme ju použiť aj na zložitejšie modely akým môžu byť napríklad Lindenmayerove systémy (l-systémy). L-systémy sú formálne systémy, ktoré boli pôvodne vyvinuté ako modely rastu buniek v rastlinách. Sú definované pomocou abecedy symbolov a sady pravidiel pre transformáciu symbolov. L-systémy sa používajú na generovanie fraktálov a iných fraktálnych štruktúr tým, že rekurzívne aplikujú pravidlá na počiatočnú sekvenciu symbolov, čím vytvárajú komplexné a detailné obrazce. Tu máme príklad jednoduchého 2D fraktálu generovaného l-systémom:
Zadanie úlohy
V tejto aktivite budeme vytvárať jednoduchý l-systém podobajúci sa (vyschnutému) stomu. Využijeme na to väčšinu poznatkov, ktoré sme doposiaľ nadobudli, njamä rekurziu, modifikáciu parametrov a podmienky. Pre implementáciu takéhoto systému si potrebujeme definovať podmienky akými sa budeme riadiť pri každom jednom objekte, ktorý do celkového modelu budeme pridávať. Podmienky nám môžu rozhodovať o rotácii, veľkosti a podobne.
Inštrukcie
- Otvorte si daný nástroj - BlocksCAD alebo OpenSCAD, ktorý ste si na implementáciu vybrali. Tinkercad Codeblocks nám neumožňuje implementovať rekurziu, preto vo výbere nie je zahrnutý.
- Skúste analyzovať obrázok a predstaviť si opakovania, ktoré pri implementácii robíme a čo potrebujeme skontrolovať pri každej iterácii.
- Vytvárame rekurziu, takže dávame pozor na podmienku, menu parametrov a nekonečné volania (ako sme sa naučili v predošlích príkladoch).
- Implementujte do funkcie opakujúce sa štruktúry, ktoré ste si všimli na obrázku.
- Ak sme implementovali tieto opakujúce sa štruktúry - vetvy stromu a umiestnili ich aspoň približne správne, je potrebné definovať podmienky a parametre pre zmeny týchto jednotlivých vetiev. Môžeme meniť rotáciu na daných osiach, posun, výšku či šírku daných vetiev, dokonca aj ich zakrivenie, predstavivosti sa medze nekladú. Pokúste sa implementovať čo najviac parametrov pre čo najviac rôznorodý storm.
- Preskúmajte parametre, ktoré ste implementovali a vytvorte medzi nimi vzťahy tak ako môžete vidieť vo vzorovom riešení.
- Skúste si meniť parametre a podmienky, ktoré ste implementovali aby ste si vizualizovali ako parametrický dizajn naozaj funguje a zakaždým si skúste vyrenderovať váš unikátny strom.
Testovanie a úpravy
Prezrite a skontrolujte si objekt a odpovedzte si na to či daný 3D model zodpovedá zadaniu a či ste s ním spokojní. Ak chcete skúsiť model upraviť, navrhujeme:
- vyskúšať implementovať na vetvy listy
- vyskúšajte si pozmeniť parametre, obzvlášť parameter pre redukciu aby ste videli aký masícny to má násleodk na výsledný model
- vo vzorovom riešení vidíme celkom pravidelný strom, skúste implementovať pravidlá pre rotáciu, dĺžky a šírky vetví tak aby bol strom čo najmenej pravidelný, prípadne skúste implmentovať zahnutie stromu akoby stál v silnom vetri a nakláňal sa na stranu
Spätná väzba
Ak ste spokojní so svojím výsledným modelom, prezentujte ho ostatným, zhodnoťte koncepty, ktoré ste použili a ako ste ho implementovali, buďte otvorení k hodnoteniam od ostatných a k prípadným návrhom na zlepšenie.
Odkazy na materiály
V tejto sekcii nájdete odkazy na materiály, ktoré vám môžu pomôcť pri riešení daných problémov a naučia vás ako používať požívané nástroje:
- BlocksCAD lessons - lekcie pre tvorbu modelov - tu si môžete vyskúšat modelovanie v BlocksCADe na úlohách s rôznymi modelmi, kde si viete triediť výber úloh podľa toho čo potrebujete, alebo vás zaujíma
- OpenSCAD manuál - miesto kde nájdete všetky potrebné informácie k OpenSCADu vrátane všetkých príkazov, dokumentácie či syntaxe
- Rekurzia - Wikipedia
- L-systém
Vzorové riešenie
Ak budete potrebovať motiváciu alebo si skontrolovať váš výsledný model, v nasledujúcich odkazoch nájdete implementáciu daného modelu v nástrojoch, ktoré ste na implementáciu mohli použiť:
Záver
V tejto aktivite sme si vytvorili náš prvý l-systém (Lindenmayerov systém). L-systémy sú pravidlá, ktoré používame na vytváranie modelov rôznych prírodných útvarov - stromy, rastliny alebo dokonca niektoré mikroorganizmy. Tieto pravidlá nám pomáhajú pochopiť, ako sa tieto útvary vyvíjajú a menia v čase. Keď vymodelujeme strom v CAD softvéri, vytvoríme si taký druh "digitálneho obrazu" tohto stromu na počítači. Potom použijeme pravidlá L-systémov na to, aby sme mohli stromu povedať ako má rásť, vetviť sa, (čo dokonca tvoriť listy a kvety).