Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: L-systémy - Význam množinových zátvoriek

Aktivity
Avatar
Štefan Pružinský:7.11.2015 14:27

Ahoj,
pracujem na interpretery L-systémov (základné D0L-systémy) a neviem pochopiť význam značiek

{ } .

Poobhliadal som sa po rôznych zdrojoch, ale okrem Wikipédie(https://cs.wikipedia.org/…-syst%C3%A9m#…) som takýto symbol nikde nevidel (nehovoriac o jeho význame)...
Budem rád za každú interpretáciu. :)

Odpovědět
7.11.2015 14:27
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
1Pupik1989
Člen
Avatar
1Pupik1989:7.11.2015 21:07
{

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.

 
Nahoru Odpovědět
7.11.2015 21:07
Avatar
Odpovídá na 1Pupik1989
Štefan Pružinský:10.11.2015 18:23

Ahoj, mohol by si mi trochu podrobnejšie vysvetliť, čo presne znamená tá '.'?
Presne to isté vysvetlenie ponúka vonkoncom aj Wikipédia...

Nahoru Odpovědět
10.11.2015 18:23
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Štefan Pružinský:10.11.2015 19:05

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... :(

Nahoru Odpovědět
10.11.2015 19:05
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
1Pupik1989
Člen
Avatar
Odpovídá na Štefan Pružinský
1Pupik1989:11.11.2015 11:11

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ů.

 
Nahoru Odpovědět
11.11.2015 11:11
Avatar
1Pupik1989
Člen
Avatar
1Pupik1989:11.11.2015 11:35

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.)
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
11.11.2015 11:35
Avatar
Odpovídá na 1Pupik1989
Štefan Pružinský:11.11.2015 12:15

Aha, už tomu asi rozumiem...ide o vyplnenie polygónu nejakou farbou (resp. samotné vykreslenie polygónu)... Ďakujem. :)

Nahoru Odpovědět
11.11.2015 12:15
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
1Pupik1989
Člen
Avatar
Odpovídá na Štefan Pružinský
1Pupik1989:11.11.2015 12:44

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.

 
Nahoru Odpovědět
11.11.2015 12:44
Avatar
Odpovídá na 1Pupik1989
Štefan Pružinský:28.11.2015 14:44

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...

Nahoru Odpovědět
28.11.2015 14:44
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
1Pupik1989
Člen
Avatar
Odpovídá na Štefan Pružinský
1Pupik1989:29.11.2015 15:43

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.

 
Nahoru Odpovědět
29.11.2015 15:43
Avatar
Odpovídá na 1Pupik1989
Štefan Pružinský:29.11.2015 16:15

Nemyslím implementáciu­...skôr chcem vedieť, ako mám zistiť, kde akú farbu výplne použiť. :)

Nahoru Odpovědět
29.11.2015 16:15
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
1Pupik1989
Člen
Avatar
Odpovídá na Štefan Pružinský
1Pupik1989:30.11.2015 4:50

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.

Editováno 30.11.2015 4:53
 
Nahoru Odpovědět
30.11.2015 4:50
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.