Logo: Turtle-Grafik
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