Nápověda Rozmarného L-systému


Zpět na obsah. | Předchozí téma. | Následující téma.


Vytváření vlastních L-systémů

Jak vytvořit vlastní pravidla?

Bohužel v této verzi program neposkytuje zabudovaný editor k vytváření vlastních pravidel L-systémů. Nicméně je možné pravidla napsat v nějakém textovém editoru a potom je otevřít položkou Otevřít v menu Soubor. Pokud jsou pravidla korektní, otevře se téměř shodný panel, jako když otvíráte zabudovaný L-systém, a můžete nastavovat různé parametry. Výsledek lze následně opět uložit jako obrázek.

Jestliže budete nastavovat počet iterací u vlastních L-systémů, nedoporučuji příliš vysoké hodnoty, neboť v takovém případě může dojít k přetečení zásobníku virtuálního stroje Javy. Navíc je program při příliš velké hloubce rekurze opravdu velmi pomalý.

Aplikace postupuje tak, že nejdříve vygeneruje z pravidel posloupnost nějakých symbolů a tuto posloupnost graficky interpretuje. Aplikace Rozmarný L-systém ke grafické interpretaci používá variantu tzv. želví grafiky. Pisátko je považováno za želvu, která má v dané chvíli určitou polohu, určitý úhel(natočení) a určitou barvu. Příkazy ve vygenerovaném řetězci mohou měnit polohu želvy, měnit barvu želvy a měnit její natočení. Dále můžou uložit stav želvy, což v případě aplikace Rozmarný L-systém znamená natočení a polohu želvy, ne její barvu. Barva želvy se tedy do zásobníku stavu želvy neukládá.

Nyní k samotné struktuře pravidel. Pravidla používaná programem Rozmarný L-systém jsou velmi podobná pravidlům, která používá program Fractint. Pravidla mají následující strukturu (ostré závorky jsou metaznaky, v pravidlech se nevyskytují):

axiom <zde uvedete axiom>
angle <zde uvedete celé číslo (úhel)>

<neterminál>=<nahrazující pravidlo>
        

Nejdříve musí být zadán axiom, potom úhel a nakonec pravidla. Jako neterminál se nesmí použít znaku h, s, b, neboť mají jiný speciální význam. Při zapisování pravidel nezáleží na tom, zda jsou psána velkými nebo malými písmeny. Mezer a prázdných řádků může být libovolně. Vše, co je na řádku za středníkem, se považuje za komentář. Nedoporučuji používat za neterminály jiné znaky, než písmena. V žádném případě se za neterminály nepoužívají čísla. Zde je příklad souboru s pravidly L-systému, který aplikace Rozmarný L-systém akceptuje:

;Nějaký L-systém

ANGLE 60
AxioM f--F--f

F=F+  F-R  ;první pravidlo
R=FF- -F ; druhé pravidlo
        

Význam jednotlivých příkazů v pravidlech.

Jak již bylo zmíněno, položka AXIOM určuje axiom pravidla a položka ANGLE základní úhel, o který se želva bude otáčet. Nyní následuje seznam příkazů, které lze použít k ovládání želvy a tím k vykreslování L-systémů:

F
Posunutí želvy o krok dopředu ve směru natočení želvy a vykreslení čáry určené tímto posunutím. Délka základního kroku se vypočítá na základě velikosti okna (ukládaného obrázku) a na počtu iterací (hloubce rekurze)
G
Posunutí želvy o krok dopředu ve směru natočení želvy bez vykreslení čáry.
+
Natočení želvy ve směru hodinových ručiček o základní úhel daný např. položkou ANGLE.
-
Natočení želvy proti směru hodinových ručiček o základní úhel daný např. položkou ANGLE.
[
Uloží stav želvy do zásobníku. Stavem se rozumí poloha a natočení želvy, nikoliv její barva.
]
Vybere ze zásobníku stav želvy.
\ číslo
Natočí želvu o zadaný úhel ve stupních proti směru hodinových ručiček. Např. \34 otočí želvu o 34 stupňů proti směru hodinových ručiček. Příklad: \10
/ číslo
Natočí želvu o zadaný úhel ve stupních ve směru hodinových ručiček. Příklad: /10
< číslo
Sníží čislo barvy želvy o zadané číslo. Barva je vyjádřena jako celé číslo ve složkách RGB (24 bitů). Např. <100 sníží číslo barvy želvy o 100. Pokud číslo barvy přesáhne danou mez, začíná se opět od opačné části spektra. Příklad: <b10
> číslo
Zvýší čislo barvy želvy o zadané číslo. Barva je vyjádřena jako celé číslo ve složkách RGB (24 bitů). Příklad: >10
<h číslo
Sníží odstín barvy želvy o dané číslo. Příklad: <h10
>h číslo
Zvýší odstín barvy želvy o dané číslo. Příklad: >h10
<s číslo
Sníží sytost barvy želvy o dané číslo. Rozsah sytosti je 0-1000, přičemž 0 je nejméně sytá. Pokud číslo přesáhne jednu z krajních mezí, začíná se od opačné části intervalu. Příklad: <s10
>s číslo
Zvýší sytost barvy želvy o dané číslo. Rozsah sytosti je 0-1000, přičemž 0 je nejméně sytá. Pokud číslo přesáhne jednu z krajních mezí, začíná se od opačné části intervalu. Příklad: >s10
<b číslo
Sníží jas barvy želvy o dané číslo. Rozsah jasu je 0-1000, přičemž 0 je nejtmavší. Pokud číslo přesáhne jednu z krajních mezí, začíná se od opačné části intervalu. <b10
>b číslo
Zvýší jas barvy želvy o dané číslo. Rozsah jasu je 0-1000, přičemž 0 je nejtmavší. Pokud číslo přesáhne jednu z krajních mezí, začíná se od opačné části intervalu. Příklad: >b10

Zde je příklad souboru s pravidly L-systému:

;neposlušný čtverec 

Angle 160        
Axiom F\90F\90F\90F                
f=f/5f-f>h2+f--f+f\5f+f
        

Zpět na obsah. | Předchozí téma. | Následující téma.