Spis treści
Spis treści . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1. Grafika żółwia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Sterowanie źółwiem . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Przykład . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1. Grafika żółwia
Grafika źółwia (ang. turtle graphisc) jest ściśle związana z językiem Logo.
Język programowania Logo został zaprojektowany pod koniec lat 60 ubie-
głego wieku przez Seymoura Paperta. Język został oparty o LISP a jego
nazwa pochodzi od greckego wyrazu logos oznaczającego „słowo”.
Początkowo język Logo służył do sterowania robotem zwanym ze względu
na swój wygląd ”Żółwiem” (patrz rysunek 1). Robot wykonując specjalne
komendy przemieszczał się po podłodze w różnych kierunkach, a dzięki wy-
posażeniu w pióro mógł znaczyć trasę swojej wędrówki. Z upływem czasu
Rysunek 1. Pierwszy żółw
żółw mechaniczny został zastapiony przez żółwia „ekranowego” - szybszego
i tańszego w eksploatacji.
Oczywiście polecenia sterujące żółwiem to tylko część języka Logo. Język
ten dysponuje szeregiem zaawansowanych mechanizmów pozwalających na
programowanie proceduralne. Posiada także możliwość stosowania rekuren-
cji.
1.1. Sterowanie źółwiem
Oto podstawowe komendy języka logo (w nawiasach skróty) pozwalające
na sterowanie żółwiem:
— FORWARD (FD) n - żółw idzie do przodu o n jednostek,
— BACK (BK) n - żółw cofa się o n jednostek,
— LEFT (LT) n - żółw skręca w lewo o n stopni,
— RIGHT (RT) n - żółw skręca w prawo o n stopni,
1. Grafika żółwia
2
— CLEARSCREEN (CS) - czyszczenie obrazu, źółw „idzie do domu”,
czyli wraca do pozycji początkowej,
— HOME - źółw „idzie do domu”
— CLEARGRAPHICS (CG) - czyszczenie obrazu, żółw nie zmienia
położenia,
— PENUP (PU) - podniesienie pióra,
— PENDOWN (PD) - opuszczenie pióra,
— PENPAINT (PPT) - źółw rysuje linie,
— PENERASE (PE) - źółw zmazuje linie
— PENREVERSE (PX) - żółw rysuje w trybie inwersji,
— HIDETURTLE (HT) - ukrycie źółwia,
— SHOWTURTLE (ST) - pokaznie źółwia.
Powstało wiele wersji narodowych poleceń żółwia, w tym także polskie
Logo. Oto wybrane polecenia implementacji AC-LOGO: naprzód (np), pra-
wo (pw), lewo (lw), wróć, wstecz (ws), czyść (cs), podnieś (pod), opuść
(opu).
1.2. Przykład
Jedną z bardziej populanych implementacji języka Logo jest MSW Logo
(patrz rysunek 2), dostępne bezpłatnie pod adresem
. Wszytkim zainteresowanym tym programem polecam lek-
turę znakomitej książki Jima Mullera (praca [1]).
Rysunek 2. Program MSW Logo
1. Grafika żółwia
3
Inną popularną implementacja tego języka jest Berkeley Logo dostępne
także bezpłatnie pod adresem
http://www.cs.berkeley.edu/~bh/
Pod adresem
dostępnych jest wiele przy-
kładowych programów w języku Logo, napisanych przy użyciu MSW Logo.
Rysunek 3 przedstawia efekt działania jednego z programów zamieszczonych
pod tym adresem:
Rysunek 3. Lokomotywa
to loko
lokomot 20
cs
lokomot 20
end
to lokomot :a
pociag :a
rt 90
pu
fd :a
rt 90
fd :a*5
lt 180
pd
prost 6*:a 4*:a
rt 90
pu
fd :a*4
pd
lt 90
prost 3*:a 3*:a
pu
bk :a
1. Grafika żółwia
4
pd
circle :a
lt 90
pu
fd :a*7/2
pd
circle :a
rt 90
pu
fd :a*4
pd
prost 3/2*:a 2*:a
lt 90
pu
fd :a*1/2
rt 90
fd :a*3
pd
rt 30
fd :a*4
rt 120
fd :a*4
pu
fd :a*7/2
lt 150
pd
prost 3/2*:a :a
repeat 3[pu fd :a*3/4
rt 30
fd :a*4
pd
circle :a*1/2]
setpencolor [255 0 0]
setfloodcolor[0 0 128]
fill
end
to pociag :a
pu
lt 90
fd :a*25
1. Grafika żółwia
5
rt 90
pd
repeat 3[wagon :a pu bk :a*7 rt 90 fd :a*3 rt 90 pd fd :a*3
lt 90 pu fd :a*3 lt 90 fd :a rt 90 pd]
end
to prost :a :b
repeat 2[fd :a rt 90 fd :b rt 90]
end
to wagon :a
prost :a
10*:a
rt 90
pu
fd :a
rt 90
pu
fd :a*5
lt 180
pd
prost 5*:a 8*:a
pu
fd :a*2
rt 90
fd :a
lt 90
pd
repeat 3[prost 2*:a :a rt 90 pu fd :a*5/2 lt 90 pd]
rt 90
pu
bk :a*3/2
rt 90
fd :a*3
pd
circle :a
rt 90
pu
fd :a*6
pd
circle :a
end
1. Grafika żółwia
6
Grafika żółwia może być ciekawym ćwiczeniem programistycznym łączą-
cym programowanie grafiki dwuwymiarowej z implementacją np. prostego
interpretera wybranego podzbioru poleceń języka Logo. Idea grafiki żółwia,
choć wydaje się prymitywna, tak naprawdę jest bardzo często wykorzysty-
wana we współczesnych algorytmch. Czytelnik przekona się o tym w lekturze
innych rozdziałów.
Literatura
7
Literatura
[1] Jim Muller: The Great Logo Adventure,