|
Vkladanie objektovVkladanie objektov do obrazu rastliny
Dosiaľ sme uviedli len symboly, ktorých grafická interpretácia korytnačou grafikou umožňovala generovať len obrazce, pozostávajúce z úsečiek. Reprezentácia listov a kvetov rastlín vyžaduje generovať polygóny, aproximujúce s dostatočnou vernosťou orgány prírodných rastlín.
Jednou z možností je vkladať do výsledného obrazca predom definované plošné útvary (nie nutne polygóny). Každý z týchto útvarov je reprezentovaný v reťazci jediným symbolom, pred ktorým je špeciálny symbol ~ ( tilda ), upozorňujúci interpreter, že nasledujúci symbol reprezentuje preddefinovanú plochu. Je možné tak vytvoriť veľmi verné kópie prírodných rastlín, ale tento prístup je v rozpore s duchom L-systémov, napríklad v tom, že uvedené útvary nie sú schopné vývoja.
Konzistentné riešenie ponúka rozšírenie sady príkazov pre korytnačku o symboly, interpretované v procese generovania polygónov:
Symbol | Popis |
{ | začína generovať polygón :
po každom pohybe korytnačky príkazom F a f bude pozícia korytnačky zaznamenaná ako vrchol polygónu |
} | ukončí generovanie polygónu a zaradí ho do vytváraného obrazca |
G | má rovnaký význam ako symbol F s tým rozdielom, že pozícia korytnačky nie je zaznamenaná ako vrchol polygónu |
g | má rovnaký význam ako symbol f s tým rozdielom, že pozícia korytnačky nie je zaznamenaná ako vrchol polygónu |
. | zaznamená polohu korytnačky ako vrchol polygónu |
Pri vlastnom generovaní môžeme postupovať dvojakým spôsobom:
- pomocou príkazov
F a f vytvoríme obrys polygónu, zaznamenávajúc nimi všetky jeho vrcholy,
- pomocou príkazov
G a g vytvoríme kostru polygónu (napríklad žily listu) a vrcholy zaznamenávame príkazom . (bodka).
Prvý postup ilustruje príklad :
Axiom = L
α = 20°
L → {--FXX+FX+++X+++FX-----|-----FX+++X+++FX+FXX}
X → FX
  
Generovanie obrysu polygónu
Druhý postup ilustruje príklad :
Axiom = X[A][B]
α = 20°
X → F(50)X
A → [+A{.].C.}
B → [-B{.].C.}
C → gC
X → XF
Parameter 50 v prvom pravidle znamená, že sa korytnačka prejde (a nakreslí) len 50% z dĺžky, ktorú by prešla po príkaze F . Na obrázku dole sú uvedené tretia, piata a siedma iterácia.
 
Generovanie kostry a obrysu polygónu
|