Autorské riešenie
[stiahni]

Naše kvietky budú vyzerať takto:

Kreslenie rastliniek si rozdelíme na niekoľko častí. Prvá procedúra bude na kreslenie kvietka na stonke, druhá na kreslenie lístkov, tretia na kreslenie stonky a napokon štvrtá na kreslenie radu rastliniek.

Procedúra na kreslenie kvietka je takáto:

     viem kvietok
nechfv "cervena
do 50
opakuj 5
[ polygon [ opakuj 3[do 30 vl 120] ]
vl 360/5
]
nechfv "zlta
kruh 14
koniec

Lístok kvietka budeme kresliť pomocou čiarky a elipsy. Procedúra na kreslenie lístka bude mať jeden parameter, a to 1 alebo -1. Ak je parameter 1, tak sa budeme točiť doľava o 60 stupňov. Ak je -1, tak sa budeme točiť doľava o -60 stupňov, čiže o 60 stupňov doprava.

viem listok :a  
  nechfv "zelena
  pd
  do 25
     
  vl :a*60
  do 30
  elipsa [15 40]
  ph
  vz 30 
  vp :a*60
  pd
koniec

Ostáva nám nakresliť stonku s lístkov a rad rastliniek.

Rastlinku budeme kresliť tak, že do pomocnej premennej si uložíme číslo (počet lístkov), ktoré budeme potrebovať neskôr.
V cykle, kým pomocné číslo je väčšie ako 0, tak budeme volať procedúru lístok. Volanie procedúry lístok bude mať parameter 1, ak číslo bude párne a -1, ak číslo bude nepárne.
Príkazy na nakreslenie stonky:

viem rastlinka :x
 urob "pocet1 :x
 kym [:x>0]
 [ ak2 ((zvysok :x 2) =1)
     [listok 1 ]
     [listok -1]
   urob "x :x-1
 ]

Potom budeme vykresľovať kvietok a nakoniec sa vrátime o toľko vzad, o koľko sme išli dopredu.
Celá procedúra na vykreslenie rastlinky je:

 viem rastlinka :x
urob "pocet1 :x
kym [:x>0]
[ak2 ((zvysok :x 2) =1)
[listok 1 ]
[listok -1]
urob "x :x-1
]

kvietok

ph
urob "pocet1 25*(:pocet1) + 50
vz :pocet1
pd
koniec

Potrebujeme ešte naprogramovať procedúru na nakreslenie radu rastliniek. Pri tom využijeme procedúru rastlinka, ktorá už nakreslí celú rastlinku.
Parameter procedúry je zoznam, v cykle budeme vyberať jednotlivé čísla zo zoznamu a tieto čísla budú parameter pri volaní procedúry rastlinka. po nakreslení rastlinky sa presunieme doprava, aby sme mohli začať kresliť ďalšiu rastlinku.
Procedúra vyzerá takto:

viem nadvorie :z
prePrvky "pocet :z
[
rastlinka :pocet
ph
vp 90
do 90
vl 90
pd
]
koniec

Najčastejšie chyby