Die Farben können mit folgenden Methoden geändert werden:
Damit man in diesen Methoden Farben verwenden kann, muss mit Es gibt vordefinierte Farbwerte: Color.black, Color.blue, Color.cyan, Color.dkgray, Color.green, Color.gray, Color.ltgray, Color.magenta, Color.pink, Color.red, Color.white und Color.yellow. Man kann aber auch jeden beliebigen Farbton definieren, indem man den rot-, grün- und blau-Anteil als eine ganze Zahl zwischen 0 und 255 angibt. Z. Bsp.: |
Im ersten Beispiel zeichnet die Turtle zuerst eine Figur. Danach wird das geschlossene Gebiet ausserhalb dieser Figur rot gefärbt. Für diese Füllen (sogennantes flood fill) können zwei Methoden verwendet werden:
fill() füllt die geschlossenen Fläche, in der sich die Turtle befindet. Es ist darauf zu achten, dass sich die Turtle nicht auf der Randlinie befindet.
fill(x, y) füllt die geschlossene Fläche, in der sich der Punkt mit den Koordinaten (x, y) befindet.
// Tu4a.java import ch.aplu.turtle.*; import java.awt.Color; public class Tu4a { Turtle joe = new Turtle(); public Tu4a() { joe.setPos(-50, 50); joe.setColor(Color.red); joe.setPenColor(Color.red); for (int k = 0; k < 4; k++) { for (int i = 0; i < 3; i++) { joe.forward(100); joe.right(90); } joe.left(180); } joe.setFillColor(Color.red); joe.fill(-60, 60); joe.hideTurtle(); } public static void main(String[] args) { new Tu4a(); } } |
Erklärungen zum Programmcode:
import java.awt.Color | Dieser Import ist immer notwendig, wenn mit Farben gearbeitet wird. |
setColor (Color.red) | Setzt die Turtlefarbe auf rot |
setPenColor (Color.red) | Setzt die Stiftfarbe auf rot |
setFillColor (Color.red) | Setzt die Füllfarbe auf rot |
fill ( - 60 , 60 ) | Die Fläche, in der sich der Punkt mit den Koordinaten befindet, wird ausgefüllt |
hideTurtle() | Die Turtle wird unsichtbar |
Die Füllfarbe ist dabei gleich der aktuellen Stiftfarbe. |
// Tu4b.java import ch.aplu.turtle.*; import java.awt.Color; public class Tu4b { Turtle t = new Turtle(); public Tu4b() { t.speed(-1); t.setPenColor(Color.yellow); t.setPos(-100, 100); t.fillToPoint(-75, 75); for (int i = 0; i < 6; i++) t.fd(60).rt(140).fd(60).lt(80); t.setPenColor(Color.green); t.rt(30); t.setPos(-180, -150); t.fillToHorizontal(-100); for (int i = 0; i < 3; i++) t.fd(120).rt(120).fd(120).lt(120); t.setPenColor(Color.red); t.fillToVertical(100); t.home(); t.rt(45); t.fd(250); } public static void main(String[] args) { new Tu4b(); } } |
Erklärungen zum Programmcode:
speed(-1) | speed(-1) bewirkt das Zeichnen ohne Animation. Turtle ist zwar sichtbar, zeichnet aber schnell |
fillToPoint(-75, 75) |
Diese Methode muss vor dem Zeichnen einer Figur aufgerufen werden. Der Punkt (-75, 75) bendet sich innerhalb des nachfolgend gezeichneten Sterns |
fillToHorizontal(-100) | Gefüllt werden trapezförmige Flächen zwischen der gezeichneten Figur und der waagrechten Gerade mit y = -100 |
fillToVertical(100) | Gefüllt werden trapezförmige Flächen zwischen der gezeichneten Figur und einer senktrechten Gerade mit x = 100. Es spielt keine Rolle, ob sich die Turtle links oder rechts von der Geraden |
home() | Turtle wird an die Position (0, 0) mit der Richtung nach oben gesetzt |
Im dritten Beispiel wird beim Zeichnen von gefüllten Figuren die Methode wrap() verwendet. Diese bewirkt, dass die Turtle nach dem Verlassen des Turtle-Fensters auf der gegenüber liegenden Seite wieder im Fenster erscheint und das Zeichnen fortsetzt. Das Füllen erfolgt weiterhin zum gleichen Punkt. |
// Tu4c.java import ch.aplu.turtle.*; import java.awt.Color; public class Tu4c { Turtle t = new Turtle(); public Tu4c() { t.wrap(); t.speed(-1); t.setColor(Color.red); t.fillToPoint(100, 0); t.setPenColor(Color.red); t.setPos(-50, 0); for (int i = 0; i < 120; i++) t.fd(8).rt(3); } public static void main(String[] args) { new Tu4c(); } } |
Erklärungen zum Programmcode:
wrap() | Die Turtle wird in den Wrap-Modus versetzt |