Logo: Turtle-Grafik

Aus Wikibooks
Zur Navigation springen Zur Suche springen
Nuvola apps bookcase 1.svg Logo

Das Prinzip der grafischen Darstellung unter der Programmiersprache Logo unterscheidet sich grundsätzlich erstmal von der anderer Programmiersprachen, die mit Koordinaten arbeiten. In Logo hat man eine virtuelle Schildkröte (engl. turtle), die einen Stift hinter sich herzieht und so bei Bedarf einen farbigen Strich zeichnet. Es gilt, diese Schilkröte mit gezielten Anweisungen fernzusteuern. Dies geht mit den nachfolgenden Anweisungen:

  • Um Grafik darstellen zu können, sollte man in den Grafikmodus gehen. Das geht mit fullscreen oder auch kurz fs.


forward länge fd länge Die Schildkröte bewegt sich um eine bestimmte Anzahl von Einheiten nach vorne
back länge  bk länge Die Schildkröte bewegt sich um eine bestimmte Anzahl von Einheiten zurück
right winkel rt winkel Die Schildkröte dreht sich um einen bestimmten Winkel nach rechts
left winkel lt winkel Die Schildkröte dreht sich um einen bestimmten Winkel nach links
setpencolor farbewert setpc farbwert Der Schildkröte wird eine Zeichenfarbe zugewiesen
pendown  pd  Der Stift wird auf die Zeichenfläche gesetzt
penup pu  Der Stift wird von der Zeichenfläche genommen
textscreen || ts || Text-Modus
home ||    Die Schildkröte bewegt sich zur Mitte des Bildschirms mit Ausrichtung nach oben (0°)
clean ||  Der Bildschirm wird gelöscht, die Position der Schildkröte ändert sich nicht
cleanscreen || cs || home und clean zusammen
hideturtle || ht || Die Schildkröte wird unsichtbar
showturtle || st || Die Schildkröte wird sichtbar

Grafik mit Koordinaten[Bearbeiten]

Es gibt aber auch in der Programmiersprache Logo die Möglichkeit, koordinatenbezogene Grafik zu erzeugen. Die geht mit der Anweisung setpos [x y]

Setpos [x y] setzt die Schildkröte genau an die Koordinaten, die in der Liste [x y] stehen. Zwischen dem Punkt, wo die Schildkröte vor Ausführung des Setpos war, und der neuen Koordinate hat die Schildkröte einen Strich gezeichnet. Um das gezielt unter Kontrolle zu halten, kann man sich der Anweisungen pu und pd bedienen.

Eine Anweisung Linie :x1 :y1 :x2 :y2 :farbwert würde so aussehen:

to linie :x1 :y1 :x2 :y2 :farbwert
make "koo1 []
make "koo2 []
make "koo1 lput :x1 :koo1
make "koo1 lput :y1 :koo1
make "koo2 lput :x2 :koo2
make "koo2 lput :y2 :koo2
setpc :farbwert
pu
setpos :koo1
pd
setpos :koo2
pu
end

Eine Anweisung box :x1 :y1 :x2 :y2 :farbwert entsprechend so:

to box :x1 :y1 :x2 :y2 :farbwert
make "koo1 []
make "koo2 []
make "koo3 []
make "koo4 []
make "koo1 lput :x1 :koo1
make "koo1 lput :y1 :koo1
make "koo2 lput :x1 :koo2
make "koo2 lput :y2 :koo2
make "koo3 lput :x2 :koo3
make "koo3 lput :y2 :koo3
make "koo4 lput :x2 :koo2
make "koo4 lput :y1 :koo2
setpc :farbwert
pu
setpos :koo1
pd
setpos :koo2
setpos :koo3
setpos :koo4
setpos :koo1
pu
end