Diskuze: L-systémy - Význam množinových zátvoriek
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
{
Znamená, že začíná nový polygon.
}
Ukončuje polygon a vykreslí ho. Pokud není zásobník polygonů prázdný, pak načteš poslední.
.
Přidá bod do polygonu.
Ahoj, mohol by si mi trochu podrobnejšie vysvetliť, čo presne znamená tá
'.'?
Presne to isté vysvetlenie ponúka vonkoncom aj Wikipédia...
Tak, konečne som tomu pochopil (musel som si to viackrát nakresliť), ale nerozumiem reálnemu využitiu tohto prepisovacieho pravidla. Pokiaľ tomu správne chápem, ukladá si jednotlivé body, z ktorých mu vznikne polygon. Následne to vykreslí, prípadne iba ukončí ukladanie (v prípade, že to vykresľujem inline)... Problém je v tom, že s tým interpreter vôbec nepracuje...iba to ukladá a maže...
Pak bude chyba jinde. Z Wikipedie jsem zkoušel penroseovo dláždění a naprosto v pořádku se vykreslí. Při nejhorším jde většina zápisů přepsat i do interpretace bez polygonů.
Editaci jsem nestihl, takže to dopíšu zvlášť.
Polygony mají stejné využití jako třeba v (Canvasu).
{ - Vytvořím nový polygon
S - Pohnu se vpřed
. - Přidám aktuální bod (pozici) do polygonu
+ - Otočím se o 60°
} - Uzavřu a vyplním polygon modrou barvou
{.S+.S.}
Příklad by měl vykreslit trojúhelník, pokud si ještě L-System pamatuji.
A hlavním rozdílem je, že už se nemusíš vracet na ten původní bod, ze kterého si vyšel, aby si uzavřel polygon. Mnohem jednodušší je to nebrat jako polygon, ale jako cestu. Takže by zápis zněl:
Začínáme novou cestu
Přidej do cesty bod
Pohni se vpřed
Otoč se
Přidej do cesty bod
Pohni se vpřed
Přidej do cesty bod
Uzavři cestu a vykresli jí dle nastavených parametrů (vyplnění, obtáhnutí, atd.)
Aha, už tomu asi rozumiem...ide o vyplnenie polygónu nejakou farbou (resp. samotné vykreslenie polygónu)... Ďakujem.
Přesně tak, jde o vykreslení polygonů. Bez toho by si vlastně pořád kreslil jen čáry. Zrovna zmiňované penroseovo dláždění se bez polygonů neobejde.
Mám ešte jednu otázku, ako určím farbu polygónu? Polygón nie je premenná, ktorej sa dajú určiť nejaké parametre...
Záleží jakou knihovnu pro vykreslování používáš. Já to bral spíše na teoretické úrovni, protože jsem l-system psal před rokem v javascriptu. C# jsem všeho všudy použil jednou.
Nemyslím implementáciu...skôr chcem vedieť, ako mám zistiť, kde akú farbu výplne použiť.
Buď je jedna barva nebo se nastavuje k symbolům. Třeba "S" bude červené a "M" modré. Pak tu jsou samozřejmě různá jiná nastavení, kdy po každé iteraci se třeba barva změní na jiný odstín pomocí nějakého pravidla. Stačí pak na začátku každého přepisovacího pravidla nastavit barvy.
Zobrazeno 12 zpráv z 12.