Turtlegrafik

Diese Seite beschreibt alle Anweisungen, mit denen die Zeichenfläche und die Turtle von PocketLogo kontrolliert werden. Die Idee der Turtlegrafik ist die folgende:

Auf der Zeichenfläche befindet sich eine Schildkröte (englisch: turtle), die einen Stift mit sich trägt. Sie wird der Einfachheit und Übersichtlichkeit halber als Dreieck dargestellt (ihre genaue Position ist in die Mitte der Grundseite des Dreiecks) und kann über Kommandos (z.B. vor, zurück, links, rechts) gesteuert werden; außerdem lassen sich Eigenschaften des Stifts ändern (Farbe, Dicke, Stift anheben/senken). Wenn der Stift gesenkt ist, zieht die Turtle bei jeder Bewegung eine Linie hinter sich her.

Die wichtigsten Eigenschaften der Turtle sind ihre Position und ihre Blickrichtung. Die Position wird in kartesischen Koordinaten gemessen, [0 0] entspricht dabei der Bildschirmmitte. Die positive x-Achse geht nach rechts, die positive y-Achse nach oben. Die Blickrichtung der Turtle wird als Gradzahl angegeben, gemessen im Uhrzeigersinn und ausgehend von der positiven y-Achse: 0° meint "nach oben", 90° meint "nach rechts" usw.

  1. Turtlebewegung
  2. Turtleabfragen
  3. Turte- und Bildschirmkontrolle
  4. Wände und Äpfel

Turtlebewegung

[Grafik] [Inhalt]


forward

Syntax

FORWARD distanz
FD distanz

Beschreibung

Bewegt die Turtle in ihrer aktuellen Richtung um die angegebene Anzahl Schritte vorwärts.

Beispiel

REPEAT 4 [FD 100 RT 90] ;Zeichnet ein Quadrat

[Turtlebewegung] [Grafik] [Inhalt]


back

Syntax

BACK distanz
BK distanz

Beschreibung

Bewegt die Turtle in ihrer aktuellen Richtung um die angegebene Anzahl Schritte rückwärts.

Beispiel

REPEAT 4 [BK 100 LT 90] ;Zeichnet ein Quadrat

[Turtlebewegung] [Grafik] [Inhalt]


left

Syntax

LEFT winkel
LT winkel

Beschreibung

Dreht die Turtle um die angegebene Gradzahl gegen den Uhrzeigersinn.

Beispiel

REPEAT 4 [FD 100 LT 90] ;Zeichnet ein Quadrat

[Turtlebewegung] [Grafik] [Inhalt]


right

Syntax

RIGHT winkel
RT winkel

Beschreibung

Dreht die Turtle um die angegebene Gradzahl im Uhrzeigersinn.

Beispiel

REPEAT 4 [FD 100 RT 90] ;Zeichnet ein Quadrat

[Turtlebewegung] [Grafik] [Inhalt]


home

Syntax

HOME

Beschreibung

Setzt die Position der Turtle auf die Bildschirmmitte (entspricht (0,0)) und ihre Laufrichtung auf 0 Grad.

Beispiel

HOME ;ist äquivalent zu den folgenden beiden Befehlen
SETPOS [0 0]
SETHEADING 0

[Turtlebewegung] [Grafik] [Inhalt]


setpos

Syntax

SETPOS position

Beschreibung:

Bewegt die Turtle auf die angegebene Position. Die Richtung der Turtle bleibt unverändert. Das Argument von SETPOS ist eine Liste, bestehend aus x- und y-Koordinate.

Wenn SETPOS mit Variablen benutzt wird, muss zur Erstellung der Liste LIST benutzt werden:

MAKE "x 100
MAKE "y 200
SETPOS [:x :y]     ;Fehler, denn die Elemente der Liste werden nicht ausgewertet
SETPOS LIST :x :y  ;Kein Fehler, denn die Parameter von LIST werden ausgewertet

Beispiel:

SETPOS [100 200]

[Turtlebewegung] [Grafik] [Inhalt]


setx

Syntax

SETX x

Beschreibung

Bewegt die Turtle entlang der x-Achse zur angegebenen neuen x-Koordinate. Ihre Richtung bleibt unverändert.

Beispiel

SETX 100
SETY 200

[Turtlebewegung] [Grafik] [Inhalt]


sety

Syntax

SETY y

Beschreibung

Bewegt die Turtle entlang der y-Achse zur angegebenen neuen y-Koordinate. Ihre Richtung bleibt unverändert.

Beispiel

SETX 100
SETY 200

[Turtlebewegung] [Grafik] [Inhalt]


setheading

Syntax

SETHEADING winkel
SETH winkel

Beschreibung

Setzt die Blickrichtung der Turtle auf die angegebene Gradzahl. Der Winkel ist im Uhrzeigersinn zu lesen, ausgehend von der positiven y-Achse (siehe Beispiel).

Beispiel

SETHEADING 0   ;nach oben
SETHEADING 90  ;nach rechts
SETHEADING 180 ;nach unten

[Turtlebewegung] [Grafik] [Inhalt]


label

Syntax

LABEL text

Beschreibung

Gibt den Text an der aktuellen Position der Turtle aus.

Beispiel

LABEL "Hier.spricht.die.Turtle

[Turtlebewegung] [Grafik] [Inhalt]


circle

Syntax

CIRCLE radius

Beschreibung

Zeichnet einen Kreis mit dem angegebenen Radius. Der Mittelpunkt des Kreises ist die Position der Turtle.

Beispiel

CIRCLE 100

[Turtlebewegung] [Grafik] [Inhalt]


Turtleabfragen

[Grafik] [Inhalt]


pos

Syntax

POS

Beschreibung

Gibt die aktuelle Position der Turtle als Liste, bestehend aus x- und y-Koordinate, zurück

Beispiel

SETPOS [100 200]
SHOW POS
[100 200]

[Turtleabfragen] [Grafik] [Inhalt]


heading

Syntax

HEADING

Beschreibung

Gibt die aktuelle Laufrichtung der Turtle zurück.

Beispiel

SETHEADING 270
PR HEADING
270

[Turtleabfragen] [Grafik] [Inhalt]


towards

Syntax

TOWARDS position

Beschreibung

Gibt die Richtung zurück, in die sich die Turtle drehen müsste, um auf die angegeben Position zu blicken. Die Laufrichtung der Turtle wird nicht geändert.

Beispiel

SETPOS [0 0]
PR TOWARDS [50 50] ;Blickrichtung von (0,0) auf (50,50) zeigen
45

[Turtleabfragen] [Grafik] [Inhalt]


Turtle- und Bildschirmkontrolle

[Grafik] [Inhalt]


showturtle

Syntax

SHOWTURTLE
ST

Beschreibung

Macht die Turtle sichtbar. Dies hat keine Auswirkungen auf den Stift der Turtle.

Beispiel

SHOWTURTLE
HIDETURTLE

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


hideturtle

Syntax

HIDETURTLE
HT

Beschreibung

Macht die Turtle unsichtbar. Dies hat keine Auswirkungen auf den Stift der Turtle.

Beispiel

SHOWTURTLE
HIDETURTLE

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


clean

Syntax

CLEAN

Beschreibung

Löscht das von der Turtle gezeichnete Bild. Dies hat keine Auswirkungen auf die Turtle oder deren Stift.

Beispiel

FD 50
CLEAN

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


clearscreen

Syntax

CLEARSCREEN
CS

Beschreibung

Löscht das von der Turtle gezeichnete Bild und setzt die Turtle auf ihre Ausgangsposition und -Richtung.

Beispiel

FD 50
CLEARSCREEN

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


pendown

Syntax

PENDOWN
PD

Beschreibung

Setzt den Stift auf die Zeichenfläche. Wenn sich die Turtle bewegt, zieht sie eine Linie hinter sich her.

Beispiel

REPEAT 10 [FD 10 PENUP FD 10 PENDOWN] ;Zeichnet eine gestrichelte Linie

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


penup

Syntax

PENUP
PU

Beschreibung

Nimmt den Stift von Zeichenfläche. Wenn sich die Turtle bewegt, zieht sie keine Linie mehr hinter sich her.

Beispiel

REPEAT 10 [FD 10 PENUP FD 10 PENDOWN] ;Zeichnet eine gestrichelte Linie

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


setpensize

Syntax

SETPENSIZE dicke

Beschreibung

Setzt die Dicke des Stifts auf den angegebenen Wert (in Pixeln).

Beispiel

SETPENSIZE 3
PRINT PENSIZE
3

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


pensize

Syntax

PENSIZE

Beschreibung

Gibt die aktuelle Dicke des Stifts zurück.

Beispiel

SETPENSIZE 3
PRINT PENSIZE
3

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


setpencolor

Syntax

SETPENCOLOR zahl.oder.RGBListe
SETPC zahl.oder.RGBListe

Beschreibung

Ändert die Stiftfarbe. Der Parameter kann entweder eine der folgenden vordefinierten Zahlen oder eine Liste, bestehend aus Rot-, Grün- und Blauwert (jeweils aus [0,255]) sein.

Die vordefinierten Farben:

0 Schwarz 4 Rot 8 Braun 12 Rosa
1 Blau 5 Magenta 9 Gelbbraun 13 Violett
2 Hellgrün 6 Gelb 10 Waldgrün 14 Orange
3 Cyan 7 Weiß 11 Hellblau 15 Grau

Beispiel

SETPENCOLOR 6
SETPENCOLOR [255 255 0] ;entspricht Gelb

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


pencolor

Syntax

PENCOLOR
PC

Beschreibung

Gibt die aktuelle Farbe des Stifts zurück. Die Rückgabe ist eine Liste, bestehend aus Rot-, Grün und Blauwert.

Beispiel

SETPENCOLOR 13
PR PENCOLOR
[128 0 128]

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


setbackground

Syntax

SETBACKGROUND zahl.oder.RGBListe
SETBG zahl.oder.RGBListe

Beschreibung

Ändert die Hintergrundfarbe der Zeichenfläche. Die bisherige Zeichnung wird dabei überschrieben. Der Parameter kann entweder eine der folgenden vordefinierten Zahlen oder eine Liste, bestehend aus Rot-, Grün- und Blauwert (jeweils aus [0,255]) sein.

Die vordefinierten Farben:

0 Schwarz 4 Rot 8 Braun 12 Rosa
1 Blau 5 Magenta 9 Gelbbraun 13 Violett
2 Hellgrün 6 Gelb 10 Waldgrün 14 Orange
3 Cyan 7 Weiß 11 Hellblau 15 Grau

Beispiel

SETBACKGROUND 6
SETBACKGROUND [255 255 0] ;entspricht Gelb

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


background

Syntax

BACKGROUND
BG

Beschreibung

Gibt die aktuelle Hintergrundfarbe der Zeichenfläche zurück. Die Rückgabe ist eine Liste, bestehend aus Rot-, Grün und Blauwert.

Beispiel

SETBG 13
PR BG
[128 0 128]

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


slowdraw

Syntax

SLOWDRAW millisekunden

Beschreibung

Verzögert die Ausführung jedes einzelnen Turtlebefehls um die angegebene Anzahl Millisekunden (tausendstel Sekunden).Die Angabe muss eine nichtnegative ganze Zahl sein.

Um die Verzögerung auszuschalten, wird slowdraw mit dem Parameter 0 aufgerufen.

Beispiel

SLOWDRAW 100
REPEAT 4 [FD 100 RT 90]

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


begindraw

Syntax

BEGINDRAW

Beschreibung

Verhindert, dass nach jeder Bewegung der Turtle das von ihr gezeichnete Bild ausgegeben wird. Alle Zeichenbefehle werden normal ausgeführt, aber das erzeugte Bild wird erst nach Ausführung von ENDDRAW komplett ausgegeben. Diese Befehle sind nützlich, wenn komplexe Figuren gezeichnet werden sollen (z.B. Fraktale wie Kochkurve, Farn usw.), da die Arbeitsgeschwindigkeit durch das Zeichnen "im Hintergrund" deutlich steigt.

Beispiel

TO kochkurve :stufe :laenge
  MAKE "stufe :stufe - 1
  MAKE "laenge :laenge / 3
  IF :stufe > 0 [
    kochkurve :stufe :laenge  RT 60
    kochkurve :stufe :laenge  LT 120
    kochkurve :stufe :laenge  RT 60
    kochkurve :stufe :laenge]
  [FD :laenge  RT 60
   FD :laenge  LT 120
   FD :laenge RT 60
   FD :laenge]
END

CLEARSCREEN
BEGINDRAW
kochkurve 3 200
ENDRAW

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


enddraw

Syntax

ENDDRAW

Beschreibung

Gibt die Zeichung, die seit der Ausführung von BEGINDRAW (siehe dort) entstanden ist, aus.

Beispiel

;siehe BEGINDRAW

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


wrap

Syntax

WRAP

Beschreibung

Setzt die Turtle in den "Wrap-Modus". Wenn die Turtle in diesem Modus über den Bildschirmrand hinausläuft, taucht sie am gegenüberliegenden Rand wieder auf und setzt die Bewegung fort. Dies ist der Modus, in dem sich die Turtle standardmäßig befindet.

Vergleiche WINDOW und FENCE.

Beispiel

WRAP
RT 20
FD 1000

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


window

Syntax

WINDOW

Beschreibung

Setzt die Turtle in den "Window-Modus". Wenn die Turtle in diesem Modus über den Bildschirmrand hinausläuft, läuft sie in den unsichtbaren Bereich weiter. Um sie in den sichtbaren Bereich zurückzuholen, kann z.B. HOME verwendet werden.

Vergleiche WRAP und FENCE.

Beispiel

WINDOW
RT 20
FD 1000

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


fence

Syntax

FENCE

Beschreibung

Setzt die Turtle in den "Fence-Modus". Die Turtle läuft in diesem Modus, soweit sie kann - bei Überschreitung des Bildschirmrandes wird ein Fehler geworfen, die weitere Ausführung also abgebrochen.

Vergleiche WRAP und WINDOW.

Beispiel

FENCE
FD 1000 ;Die Turtle läuft nur bis zum Bildschirmrand
Turtle außerhalb des Bildschirms.
BK 50  ;Ausführbar, da die Turtle sich innerhalb des Bildschirms bewegt

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


turtlemode

Syntax

TURTLEMODE

Beschreibung

Gibt den aktuellen Turtlemodus aus, also WRAP, WINDOW oder FENCE.

Beispiel

WRAP
PR TURTLEMODE
wrap

[Turtle- und Bildschirmkontrolle] [Grafik] [Inhalt]


Wände und Äpfel

[Grafik] [Inhalt]


drawfence

Syntax

DRAWFENCE
DF

Beschreibung

Versetzt die Turtle in einen Modus, in dem sie bei jeder Bewegung eine Wand (statt einer normalen Linie) zeichnet. Alternativ können Wände über das Menü "Turtle - Wand hinzufügen" definiert werden.

Siehe auch STOPFENCE.

Beispiel

DRAWFENCE
FD 100
STOPFENCE

[Wände und Äpfel] [Grafik] [Inhalt]


stopfence

Syntax

STOPFENCE
SF

Beschreibung

Beendet den Wandzeichenmodus. Die Turtle zeichnet wieder normale Linien. Achtung: Die Turtle steht noch auf dem letzten Punkt der zuletzt gezeichneten Wand und kann sich nicht normal wegbewegen. Sie kann entweder über das Menü "Turtle - Position festlegen" oder mit Hilfe des Geist-Modus bewegt werden.

Siehe auch DRAWFENCE, GHOSTON, GHOSTOFF.

Beispiel

DRAWFENCE
FD 100
STOPFENCE

[Wände und Äpfel] [Grafik] [Inhalt]


ghoston

Syntax

GHOSTON

Beschreibung

Versetzt die Turtle in den Geist-Modus. In diesem Modus kann sie durch Wände laufen, ohne anzustoßen. Im Geist-Modus ist die Turtle gestrichelt gezeichnet und zieht gestrichelte Linien. Dieser Modus ist nützlich, um nach dem Zeichnen von Wänden eine bestimmte Startposition zu erreichen, ohne die Wände beachten zu müssen.

Siehe auch GHOSTOFF.

Beispiel

DRAWFENCE
FD 100
STOPFENCE
GHOSTON
RT 135
FD 50
RT 135
FD 100 ;Hier bewegt sich die Turtle durch die Wand
GHOSTOFF

[Wände und Äpfel] [Grafik] [Inhalt]


ghostoff

Syntax

GHOSTOFF

Beschreibung

Beendet den Geist-Modus. Die Turtle kann keine Wände mehr durchlaufen.

Siehe auch GHOSTON.

Beispiel

DRAWFENCE
FD 100
STOPFENCE
GHOSTON
RT 135
FD 50
RT 135
FD 100 ;Hier bewegt sich die Turtle durch die Wand
GHOSTOFF

[Wände und Äpfel] [Grafik] [Inhalt]


lookahead

Syntax

LOOKAHEAD
LA

Beschreibung

Gibt die Entfernung bis zur nächsten Wand in Blickrichtung der Turtle aus. Falls keine Wand in Blickrichtung liegt, gibt LOOKAHEAD den Wert -1 zurück. Die Turtle kann maximal 1000 Pixel weit sehen.

Im folgenden Beispiel läuft die Turtle bis knapp vor die nächste Wand, falls sie eine Wand sieht.

Beispiel

FENCE ;Im Fence-Modus werden Wände am Bildschirmrand erzeugt
IF LOOKAHEAD > 0 [FD LOOKAHEAD - 20]

[Wände und Äpfel] [Grafik] [Inhalt]


erasefences

Syntax

ERASEFENCES
ERF

Beschreibung

Entfernt alle Wände. Falls die Turtle sich im Fence-Modus befindet, bleiben die Wände am Bildschirmrand erhalten.

Alternativ können einzelne Wände über das Menü "Turtle - Wand entfernen" gelöscht werden.

Beispiel

ERASEFENCES

[Wände und Äpfel] [Grafik] [Inhalt]


putapple

Syntax

PUTAPPLE
PA

Beschreibung

Legt einen Apfel an der aktuellen Position der Turtle ab. Falls der Apfel so nah an einen vorhandenen Apfel gelegt würde, dass sich beide überschneiden, wird der neue Apfel stattdessen auf den vorhandenen gelegt. Eine Zahl im Apfel gibt dann die Anzahl der dort befindlichen Äpfel an.

Beispiel

REPEAT 3 [PUTAPPLE]
TAKEAPPLE
PR APPLECOUNT
2

[Wände und Äpfel] [Grafik] [Inhalt]


takeapple

Syntax

TAKEAPPLE
TA

Beschreibung

Nimmt einen Apfel an der aktuellen Position der Turtle auf. Falls dort mehrere Äpfel liegen, verringert sich die Anzahl um 1. Wenn kein Apfel vorhanden ist, tut TAKEAPPLE nichts.

Beispiel

REPEAT 3 [PUTAPPLE]
TAKEAPPLE
PR APPLECOUNT
2

[Wände und Äpfel] [Grafik] [Inhalt]


applecount

Syntax

APPLECOUNT
AC

Beschreibung

Gibt die Anzahl der Äpfel zurück, die an der aktuellen Position der Turtle liegen.

Beispiel

REPEAT 3 [PA]
TA
PR APPLECOUNT
2

[Wände und Äpfel] [Grafik] [Inhalt]


eraseapples

Syntax

ERASEAPPLES
ERA

Beschreibung

Entfernt alle Äpfel. Alternativ können einzelne Äpfel über das Menü "Turtle - Apfel entfernen" gelöscht werden.

Beispiel

ERASEAPPLES

[Wände und Äpfel] [Grafik] [Inhalt]


Diese Seite gehört zum Internetauftritt von PocketLogo.

PocketLogo wird gehostet von

Get PocketLogo at SourceForge.net. Fast, secure and Free Open Source software downloads