|
Kombinácia ostrovov a jazier - parametre sekcie ViewV tomto príklade sa budeme venovať len o čosi zložitejšiemu fraktálu, ktorý je generovaný pomocou L-systému. Hlavne sa sústredíme na ďalšie parametre tentoraz v sekcii View, ktoré rozširujú možnosti čo do spôsobu generovania, resp. vizualizácie L-systému. Vytvoríme nový projekt a sekcii L-system definujeme samostatný fraktál.
#define STEP 2
system: 0
derivation length: 2
axiom: F+F+F+F
F --> F+f-FF+F+FF+Ff+FF-f+FF-F-FF-Ff-FFF
f --> ffffff
endlsystem
Oproti predošlému príkladu tu pribudla jedna direktíva a to #define meno hodnota, ktorou je možné definovať konštanty používane ďalej v L-systéme. Taktiež sa objavil nový interpretačný symbol v podobe f , jeho funkcia je obdobná ako v prípade F , t.j. posúva sa o jednotku dĺžku, ale nezanecháva za sebou úsečku. Čiže ide o transláciu kresliacej korytnačky.
Axióma L-systému generuje štvorec (za predpokladu že angle increment je rovný hodnote 90 ) a prepisovacie pravidlo F --> F+f-FF+F+FF+Ff+FF-f+FF-F-FF-Ff-FFF sa interpretuje následovne:
Venujme sa teraz ale parametrov v sekcii View. Ide o typický súbor zobrazenia (*.v), ktorý je možný až na malé zmeny používať pri ľubovoľných l-systémoch.
angle factor: 4 - popisuje špecifický uhol používaný pri generovaní L-systému. Rovnakú funkciu má aj parameter angle increment.
initial color: 1 - parameter špecifikuje primárnu farbu, alebo materiál, ktorým sa vykresľuje L-systém.
color increment: 0 - určuje farebný inkrement, t.j. je možné vykresľovať rôzne iterácie pri generovaní L-systému rôznými farbami a tak napríklad simulovať čerstvé výhonky rastlí, resp. kôrnatenie kmeňa.
initial line width: 2 - parameter určuje šírku čiary, ktorou sa L-systém vykresľuje.
line width increment: 0 - určuje inkrement hrúbky kresliacej čiary, t.j. počas generovania L-systému je možné v závislosti na derivačnom kroku meniť hrúbku čiar. Využiteľné napr. pri simulácii hrubnutia stoniek rastlín.
viewpoint: 0,0,1 - určuje koordináty miesta pohľadu v generovanom svete(vychádza z implementácie OpenGL), hodnoty reprezentujú, súradnice, x,y,z.
view reference point: 0,0,0 - určuje koordináty miesta na ktoré sa pozeráme v generovanom svete, zvyšok je totožný s predošlým.
twist: 0 - parameter špecifikuje, ako má byť výsledný obraz v okne rotovaný, hodnota sa udáva v desatinách stupňa.
projection: parallel - identifikuje typ zamýšľanej projekcie, na výber je parallel, alebo perspective.
front distance: -100000.0 - vzdialenosť pozorovateľa ku prednej rezovej rovine(OpenGL).
back distance: 100000.0 - vzdialenosť pozorovateľa od zadnej rezovej roviny(OpenGL).
scale factor: 0.9 - parameter určuje finálnu veľkosť obrázku na obrazovke. Hodnota 1.0 , korešponduje s max veľkosťou.
z buffer: off - identifikuje, či majú byť skryté povrchy eliminované (použitím Z-buffera).[on / off]
shade mode: 7 - parameter identifikuje, jeden z 7 typov tieňovania.(rendering)
- jednoduchá výplň
- interpolovaná výplň
- Gourandovo tieňovanie
- B-spline
- uzavreté B-spline
- obojstranné tieňovanie
- drôtený model
light direction: 1.0, 1.0, 1.0 - hodnoty určujú súradnice vektora, špecifikujúce smer svetla. Relevantné iba ak pracujete v Colormap mode, inak sa použije parameter light .
diffuse reflection: 0 - číslo určuje interval farieb, ktoré sú použité v procese tieňovania.
tropism direction: 0.0,1.0,0.0 - súradnice špecifikujú vektor, poukazujúci smer ku vetvám so sklonom k ohýbaniu, význam tohoto príkazu je hlavne v spätnej kompatibilite.
initial elasticity: 0.0 - parameter určuje náchylnosť vetvy k ohnutiu.
elasticity increment: 0.0 - parameter slúži ako inkrement, resp. dekrement pre hodnotu elasticity asociovanú s nejakým symbolom.
Takže po následnom spustení simulácie dostávame nasledujúci obrazec.
Isteže cpfg, disponuje podstatne širšou paletou rôznych parametrov, pre viac informácii odporúčam CPFG užívateľský manuál, stať 6., resp. 6.2
|