Java Turtle

aus ZUM-Wiki, dem Wiki für Lehr- und Lerninhalte auf ZUM.de
Wechseln zu: Navigation, Suche

<language>Java</language> Die ProgrammingWiki Erweiterung bietet die Möglichkeit Turtle-Grafiken zu erzeugen. Ein guter Einstieg zu diesem Thema ist hier zu finden (in der Programmiersprache Scheme).

Das Turtle-Objekt

Es wird bereits ein Turtle Objekte turtle zur Verfügung gestellt. Sollten Sie mehr als eine Zeichenfläche auf einer Wikiseite verwenden, werden diese durchnummeriert. turtle2 würde die zweite Zeichenfläche ansprechen usw.

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 eines existierenden Turtle ist möglich:

Turtle t2 = t.clone();

Folgende Methoden unterstützt die Klasse Turtle:

public void forward (int n)
public void backward (int n)
public void right(int a)
public void left (int a)
public void penUp ()        // hebt den Stift hoch (kein Zeichnen mehr bei forward/backward)
public void penDown ()      // setzt Stift wieder auf
public void penErase ()     // setzt Stiftfarbe auf Weiß
public void penWidth(int w)
public void penColor (int r, int g, int b)
public void show()
public void hidde()
public Turtle clone()
public void setAngle(int a) // setzt die Blickrichtung absolut
public void setAngleTo(Turtle t) // setzt die Blickrichtung auf anderen Turtle
public void move(int toX,int toY) // setzt die Position des Turtles absolut
public void home() // setzt die Position wieder in die Canvas Mitte zurück

Ein Turtle kann gleichzeitig mit dem Canvas Objekt verwendet werden.

Beispiele

Nachfolgendes Beispiel zeichnet einen Stern und wechselt dabei die Farbe.

<eval id="4afef774c7704"> canvas.clear(); // Zeichenfläche löschen turtle.home(); for(int i = 0; i < 200; i++){

  turtle.penColor(i,256-i,0);
  turtle.forward(i);
  turtle.right(i); 

} </eval>

<canvas></canvas>


Das nachfolgende Beispiel ist recht rechenintensiv und benötigt im Internet Explorer einige Zeit. Wenn Sie Firefox verwenden, sollte dies deutlich schneller gehen.

<eval id="4ba0eda417fa1"> void REPOLY (int D) {

if (D > 0){    
  turtle2.right(45);   
  REPOLY(D-1);    
  turtle2.left(90);    
  REPOLY(D-1);    
  turtle2.right(45);   
}   
if (D == 0) turtle2.forward(4);

}

canvas.clear(); turtle2.move(200,50); turtle2.right(90); REPOLY(10); </eval>

<canvas></canvas>