14.2 Interpretado de la testudo

Tiu unua ekzemplo ebligis vin kompreni la nocion de sistemo de Lindenmayer, eble sen ekkonscii kiel ni uzos tion konkrete kun la testudo.

Ja tie tio estiĝas interesa: Ĉiu vorto tiel konstruita nur havas propran signifon. Oni tiam kroĉos al ĉiu litero de la sinsekvo, komandon rulotan de la testudo, por tiel generi desegnojn 2D aŭ 3D.

14.2.1 Oftaj simboloj

Ni prenu por ekzemplo α = 90 kaj unuecan moviĝon je 10 testudpaŝojn; jen:










Simbolo F + - & ^ \ |









Komando XLogo an 10 mdn 90 dn 90 malsupren 90 supren 90 mdfn 90 dfn 90 dn 180









14.2.2 Neĝero de Koch

Konsideru la L-sistemon:

Unuaj iteracioj:

PIC

PIC

PIC
PIC

Programo en Logo:

por neĝero :p  
provizu "unuo 300 / potencon 3 :p-1  
ripetu 3 [F :p-1 td 120]  
fino  
 
por F :p  
se :p=0 [an :unuo haltu]  
F :p-1 mdn 60 F :p-1 dn 120 F :p-1 md 60  
F :p-1  
fino

14.2.3 Kurbo de Koch je ordo 2

Ni interesiĝu pri la jena L-sistemo:

Jen la unuaj reprezentoj uzante α = 90 kaj alĝustigante la unuecan paŝon tiel ke la figuro havu ĉiam la saman amplekson:

PIC

PIC

PIC
PIC

Tre facilas do krei la programon Logo ebligantan generi tiujn desegnojn:

# p indikas l’ iteracion  
por koch :p  
  # Je ĉiu iteracio, la unueca distanco dividatas per 4  
  # Ĉi tie, la fina figuro havos amplekson 600x600 maksimume  
  provizu "unuo 300 / potencon 4 :p-1  
  ripetu 3 [F :p-1 tg 90] F :p-1  
fino  
 
# La ĉeno reskribada  
por F :p  
  se :p=0 [an :unuo haltu]  
  F :p-1 mdn 90 F :p-1 dn 90 F :p-1 dn 90  
  F :p-1 F :p-1 mdn 90 F :p-1 mdn 90 F :p-1 dn 90 F :p-1  
fino

14.2.4 Kurbo de l’ dragono

por a :p  
se :p=0 [an :unuo haltu]  
a :p-1 mdn 90 b :p-1 mdn 90  
fino  
 
por b :p  
se :p=0 [an :unuo haltu]  
dn 90 a :p-1 dn 90 b :p-1  
fino  
 
por dragono :p  
provizu "unuo 300 / 8 / :p  
a :p  
fino

PIC

dragono 10

PIC

dragono 15

14.2.5 Kurbo de Hilbert en 3D

La sekva ekzemplo estas la kurbo de Hilbert en la spaco; ĝi estas kurbo kun la atributo plenigi tute kubon kiam oni pligrandigas la nombron de iteracioj .

Jen la rilata sistemo:

por hilbert :p  
ev perspektive  
provizu "unuo 400 / potencon 2 :p  
linia_difino sdikp :unuo/2  
a :p  
linia_difinhalto  
tridimensie_vidigu  
fino  
 
por a :p  
se :p=0 [haltu]  
b :p-1 dn 90 an :unuo mdn 90 c :p-1 an :unuo c :p-1  
mdn 90 an :unuo dn 90 d :p-1 malsupren 90 an :unuo supren 90 d :p-1  
dn 90 an :unuo mdn 90 malsupren 180 c :p-1 an :unuo c :p-1  
mdn 90 an :unuo mdn 90 b :p-1 dfn 180  
fino  
 
por b :p  
se :p=0 [haltu]  
a :p-1 malsupren 90 an :unuo supren 90 c :p-1 an :unuo b :p-1 supren 90  
an :unuo supren 90 d :p-1 supren 180 dn 90 an :unuo dn 90 d :p-1 supren 90  
dn 180 an :unuo supren 90 b :p-1 dn 180 an :unuo c :p-1 supren 90 an :unuo  
supren 90 a :p-1 dfn 180  
fino  
 
por c :p  
se :p=0 [haltu]  
dn 180 d :p-1 supren 90 dn 180 an :unuo supren 90 b :p-1 dn 90 an :unuo mdn 90  
c :p-1 supren 90 an :unuo supren 90 a :p-1 malsupren 180 an :unuo a :p-1 malsupren 90  
an :unuo supren 90 c :p-1 mdn 90 an :unuo mdn 90 b :p-1 supren 90 an :unuo supren 90  
d :p-1 dfn 180  
fino  
 
por d :p  
se :p=0 [haltu]  
dn 180 c :p-1 an :unuo b :p-1 dn 90 an :unuo mdn 90 b :p-1 dn 180  
an :unuo a :p-1 malsupren 90 an :unuo supren 90 a :p-1 malsupren 180 an :unuo  
b :p-1 dn 90 an :unuo mdn 90 b :p-1 dn 180 an :unuo c :p-1 dfn 180  
fino

Jen l’ unuaj iteracioj:

PIC

PIC

PIC
PIC