Turtle Befehle

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
== 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. 

<run id="4d2c38a925506">
canvas.clear(); // Zeichenfläche löschen
turtle.home();

boolean isUp = false;

for(int i = 0; i < 18; i++){  
 turtle.penColor(i*10+50,0,250-10*i);  
 turtle.penWidth(8);
 turtle.forward(20);  
 turtle.right(20); 
 isUp = !isUp; 
 if(isUp) turtle.penUp(); else turtle.penDown();
}
</run>

<canvas></canvas>

== 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)

Ein Turtle kann gleichzeitig mit dem [[Canvas_Befehle|Canvas Objekt]] verwendet werden.

== Verwendung in Pascal ==

Da der verwendete Pascal Interpreter keine Objekte unterstützt, wurden alle Funktionen global definiert. Mit dem Befehl: <tt>selectTurtle(turtleID:Integer);</tt> 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 <tt>createTurtle(canvasID:Integer)</tt>:

 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)