Turtle Befehle
Aus ProgrammingWiki

Inhaltsverzeichnis |
Turtle Grafiken
Mit Turtle-Grafik, auch Igelgrafik, wird eine Bildbeschreibungssprache bezeichnet, bei der man sich vorstellt, dass ein stifttragender Roboter (die Schildkröte, engl. „turtle“) sich auf der Zeichenebene bewegt und mit einfachen Kommandos, wie Stift heben, senken, vorwärts laufen und drehen, gesteuert werden kann.
Im Wiki wurde hierfür eine eigene Lösung entwickelt, die sich an bestehenden Systemen orientiert.
Ein Turtle kann gleichzeitig mit dem Canvas Objekt verwendet werden.
Verwendung in Java
In Java wird bereits ein Turtle Objekte turtle zur Verfügung gestellt. Dieses ist identisch mit dem Object turtle1. Weiterhin sind die Objekte turtle2 bis turtle5 vordefiniert. Diese zeichnen jeweils auf die Zeichenfläche mit der zugehörigen Nummer.
Wenn Sie mehrere Turtle auf der gleichen Zeichenfläche verwenden wollen, können Sie mit nachfolgendem Befehl weitere Turtle auf der Zeichenfläche n instanziieren:
Turtle t = new Turtle(1);
Auch das Clonen einer existierenden Turtle ist möglich:
Turtle t2 = t.clone();
Folgende Methoden unterstützt die Klasse Turtle:
public String forward (double n) public String backward (double n) public String right(double a) public String left (double a) public String penUp () // hebt den Stift hoch (kein Zeichnen mehr bei forward/backward) public String penDown () // setzt Stift wieder auf public String penErase () // setzt Stiftfarbe auf Weiß public String penWidth(double w) public String penColor (int r, int g, int b) public String show() public String hide()
public String setAngle(double a) // setzt die Blickrichtung absolut public String setAngleTo(Turtle t) // setzt die Blickrichtung auf anderen Turtle public String move(double toX,double toY) // setzt die Position des Turtles absolut public String home() // setzt die Position wieder in die Canvas Mitte zurück (nur bei vorgegebener Canvas-Größe)
Verwendung in Pascal
Da der verwendete Pascal Interpreter keine Objekte unterstützt, wurden alle Funktionen global definiert. Mit dem Befehl: selectTurtle(turtleID:Integer); lässt sich die aktuelle Turtle (die gesteuert werden soll) wechseln. Wird der Befehl nicht verwendet, wird immer die erste Turtle auf der Zeichenfläche 1 verwendet.
Um eine neuen Turtle zu erzeugen verwendet man den Befehl createTurtle(canvasID:Integer):
Bob := createTurtle(1); selectTurtle(Bob);
Der Parameter bestimmt auf welchem Canvas die Turtle erzeugt werden soll. Damit lassen sich mehrere Turtle auf der gleichen Zeichenfläche erstellen.
Es können folgende Befehle verwendet werden:
turtle_forward (n:Real) turtle_backward (n:Real) turtle_right(a:Real) turtle_left (a:Real) turtle_penUp () // hebt den Stift hoch (kein Zeichnen mehr bei forward/backward) turtle_penDown () // setzt Stift wieder auf turtle_penErase () // setzt Stiftfarbe auf Weiß turtle_penWidth(w:Integer) turtle_penColor (r,g,b:Integer) turtle_show() turtle_hide()
turtle_setAngle(a:Real) // setzt die Blickrichtung absolut turtle_setAngleTo(turtleID:Integer) // setzt die Blickrichtung auf eine anderen Turtle turtle_move(x,y:Real) // setzt die Position der Turtle absolut turtle_home() // setzt die Position wieder in die Canvas Mitte zurück (nur bei vorgegebener Canvas-Größe)
Verwendung in Scheme
In Scheme wird bereits ein Turtle Objekte turtle zur Verfügung gestellt. Dieses ist identisch mit dem Object turtle1. Weiterhin sind die Objekte turtle2 bis turtle5 vordefiniert. Diese zeichnen jeweils auf die Zeichenfläche mit der zugehörigen Nummer.
Wenn Sie mehrere Turtle auf der gleichen Zeichenfläche verwenden wollen, können Sie mit nachfolgendem Befehl weitere Turtle auf der Zeichenfläche n instanziieren:
(define Bob (newturtle 1))
Auch das Clonen einer existierenden Turtle ist möglich:
(define Bob2 (clone Bob))
Folgende Befehle zur Steuerung der Turtle stehen zur Verfügung:
(forward Bob n) (backward Bob n) (right Bob a) (left Bob a) (penUp Bob) // hebt den Stift hoch Bob kein Zeichnen mehr bei forward/backward) (penDown Bob) // setzt Stift wieder auf (penErase Bob) // setzt Stiftfarbe auf Weiß (penWidth Bob w) (penColor Bob r g b) (show Bob) (hide Bob)
(setAngle Bob a) // setzt die Blickrichtung absolut (setAngleTo Bob Eva) // setzt die Blickrichtung auf eine anderen Turtle (move Bob toX toY) // setzt die Position des Turtles absolut (home Bob) // setzt die Position wieder in die Canvas Mitte zurück Bob nur bei vorgegebener Canvas-Größe)