Zbierka - Kochova kocka: Rozdiel medzi revíziami
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 25: | Riadok 25: | ||
<li>Otvorte si nástroj OpenSCAD</li> | <li>Otvorte si nástroj OpenSCAD</li> | ||
<li>Všetky koncepty, ktoré k zostrojeniu takéhoto modelu potrebujete už poznáte z predošlých úloh.</li> | <li>Všetky koncepty, ktoré k zostrojeniu takéhoto modelu potrebujete už poznáte z predošlých úloh.</li> | ||
<li>Princíp fungovania fraktálov môžeme vidieť na | <li>Princíp fungovania fraktálov môžeme vidieť na nasledujúcich obrázkoch:<br clear=all> | ||
Z obrázku môžeme vyčítať, že fraktál má definovanú nejakú základnú štruktúru, ktorá sa postupne pri každej iterácii prepoužíva s určitými zmenami, toto sa pokúsime implementovať:<br> | Z tohto obrázku môžeme vyčítať, že fraktál má definovanú nejakú základnú štruktúru, ktorá sa postupne pri každej iterácii prepoužíva s určitými zmenami, toto sa pokúsime implementovať:<br> | ||
[[File:Iteracie_fraktal.png|alt=obrázok s iteráciami fraktálov|500px]]<br clear=all> | [[File:Iteracie_fraktal.png|alt=obrázok s iteráciami fraktálov|500px]]<br clear=all> | ||
<br clear=all> | <br clear=all> |
Verzia z 02:03, 5. máj 2024
Kochova kocka iteratívne
Pri tvorbe 3D modelov často potrebujeme dbať na optimálnu implementáciu. Ak máme náročných operácií veľa a navyše ak ich kombinujeme, naše riešenie nebude dostatočne odladené a bude príliš náročné na výpočet. Je možné, že nám "spadne" program, alebo sa bude objekt modelovať veľmi dlho.
Zadanie úlohy
V tejto aktivite si ukážeme ako vyzerá taký fraktál a ako sa dá iteratívne zapísať pomocou cyklov. Vytvoreným modelom si predvedieme ako rapídne rastie zložitosť programov pri zanáraní cyklov a prečo je v tomto prípade lepšie použiť rekurzívny prístup, ktorý si precvičíme v nasledovných príkladoch. Fraktály sú matematické objekty, ktoré vykazujú opakujúce sa vzory na rôznych mierkach. Tieto vzory sú vytvorené iteratívnym procesom, kde sa malá časť obrazu opakuje vo väčšej štruktúre. Fraktály majú komplexnú a často nádherne detailnú geometriu, ktorá sa podobá prírodným javom a procesom. Sú využívané v rôznych oblastiach, od matematiky a fyziky po umenie a počítačovú grafiku, a slúžia ako nástroj na skúmanie chaosu, sebopodobnosti a zložitosti vo svete okolo nás. Príklad fraktálu v prírode: vyhľadávanie Google - "fractals in nature". Príklad kochovej kocky: vyhľadávanie Google - "koch cube"
Inštrukcie
- Otvorte si nástroj OpenSCAD
- Všetky koncepty, ktoré k zostrojeniu takéhoto modelu potrebujete už poznáte z predošlých úloh.
- Princíp fungovania fraktálov môžeme vidieť na nasledujúcich obrázkoch:
Z tohto obrázku môžeme vyčítať, že fraktál má definovanú nejakú základnú štruktúru, ktorá sa postupne pri každej iterácii prepoužíva s určitými zmenami, toto sa pokúsime implementovať:
Na tomto gif obrázku môžeme zas vidieť ako sa nekonečne zanoruje bežný fraktál:
- Dobre si pozrite model, alebo sa inšpirujte vyhľadaním obrázkov "koch cube" alebo "fractal" a uvažujte aké princípy sa pri modelovaní takéhoto objektu využili.
- Základná štruktúra programu na vykreslenie fraktálu zahŕňa:
- Definovanie matematických vzorcov alebo pravidiel, ktoré určujú tvar a štruktúru fraktálu.
- Implementácia algoritmu na vykreslenie fraktálu, ktorý využíva tieto vzorce a pravidlá.
- Aplikácia transformácií podľa definovaných pravidiel.
- Opakovanie procesu pre každú úroveň detailu alebo potrebnú úroveň zväčšenia alebo zmeny.
- Objekt začnite implementovať pridaním samostatnej kocky a postupujte princípmi, ktoré ste si zvolili - ak ste si dobre všimli, základným modelom je hlavná kocka, z ktorej sa robí rozdiel menších kociek, dobrým spôsobom pri implementácii je teda použitie CSG operácie rozdielu.
- Ak ste dokázali impementovať samotnú kocku, z ktorej ste vyrezali menšie kocky, tak sa pokúste implementovať pomocou ďalšieho cyklu podobné vyrezanie.
- Motivujte sa vzorovým riešením a všimnite si použitie parametrov. Tieto parametre skúste upraviť aby ste pochopili ich význam.
- Všímajte si, že pri každom zanorenom cykle trvá dlhšie renderovanie daného objektu.
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ť iné prepočítavanie parametrov a sledovať ako sa aplikovaním parametrického dizajnu mení celý model
- vyskúšajte namiesto kociek pracovať s inými základnými modelmi
- vyskúšajte implementovať viac cyklov a pozorovať ako rapídne sa renderovanie modelu spomaľuje
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, spomeňte pozorované zmeny rýchlostí, 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:
- 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
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
Týmto modelom sme ilustrovali potrebu optimalizácie vašej implementácie a taktiež sme si vizualizovali jeden zo základných fraktálov, tzn. "Kochovu kocku" pri čim vidíme opakovanie určitých či podobných operácií dokola. Fraktály sú geometrické objekty budované pomocou rekurzie. Často sa s nimi stretávame v prírode a vieme ich zapísať pomocou matematických vzorcov, no sú náročné pri 3D modelovaní. V tomto prípade sme model implementovali iteratívne, ďalej si ukážeme ako funguje rekurzia.