Jython HomeDruckenJava-Online

Farben verwenden


Die Farben können mit folgenden Befehlen gewählt werden:

setColor("farbe") : Farbe der Turtle
setPenColor("farbe") : Stiftfarbe
setFillColor("farbe") : Füllfarbe

Die Turtle kennt die sogenannten X11-Farben. Das sind einige dutzend Farbnamen, die man im Internet unter http://cng.seas.rochester.edu/CNG/docs/x11color.html finden kann. Einige übliche Namen: black, blue, browsn, cyan, dkgray, green, gray, ltgray, magenta, navy, orange, pink, red, sky blue, turquoise, white, yellow.

Mit dem Befehl fill() wird die geschlossenen Fläche, in der sich die Turtle befindet, gefüllt.
fill(x, y) füllt die geschlossene Fläche, in der sich der Punkt mit den Koordinaten (x, y) befindet.

Beispiel 1: Die Turtle zeichnet zuerst einen Kreuz. Dann wird die Füllfarbe auf rot gesetzt und das geschlossene Gebiet ausserhalb des Kreuzes rot gefärbt.

 
Ausführen mit Webstart
# Tu4.py

from gturtle import *

makeTurtle()
setPos(-50, 50)
setPenColor("red")
for k in range(4):
    for i in range(3):
        forward(100)
        right(90)
    left(180)
setFillColor("red")
fill(-60, 60)
hideTurtle()
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

Erklärungen zum Programmcode:

In diesem Beispiel ist es besser, zum Füllen der Fläche den Befehl fill(x, y) zu verwenden, da sich die Turtle nach dem Zeichnen der Figur auf der Linie und nicht in der zu färbenden Fläche befindet
hideTurtle() versteckt die Turtle

 

  Weitere Füllbefehle

Die Flächen können auch fortlaufend während des Zeichnens mit der Stiftfarbe gefärbt werden. Dazu stehen folgende Befehle zur Verfügung:

fillToPoint(x, y)
Am Punkt (x, y) wird sozusagen ein Gummiband befestigt, das diie Turtle mitzieht. Dabei werden alle Punkte, über die sich das Gummiband bewegt fortlaufend eingefärbt

fillToHorizontal(y)
Füllt fortlaufend die Flächen zwischen der Turtlespur und der waagrechten Linie (y = konstant)

fillToVertical(x)
Füllt fortlaufend die Flächen zwischen der Turtlespur und der senkrechten Linie (x = konstant)

 

 
Ausführen mit Webstart
Beispiel 2: Fortlaufendes Füllen der Figuren mit der Stiftfarbe

# Tu4a.py

from gturtle import *

makeTurtle()
speed(-1)
setPenColor("yellow")
setPos(-150, 100)
fillToPoint(-100, 75)
for i in range(6):
    fd(60).rt(140).fd(60).lt(80)  
setPenColor("green")
rt(30)
setPos(-180, -150)
fillToHorizontal(-100)     
for i in range(3):
    fd(120).rt(120).fd(120).lt(120)
setPenColor("red")
fillToVertical(100)
home() 
rt(45)
fd(250)
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

Erklärungen zum Programmcode:

Der Befehl fillToPoint()muss vor dem Zeichnen der Figur erfolgen
fd(60).rt(140).fd(60).lt(80) Die Turtle-Befehle können nacheinander, getrennt mit Punkt verwendet werden
home() versetzt die Turtle wird an die Position (0, 0) mit der Richtung nach oben

 

  Gefüllte Pfade

Für das Füllen von Flächen können auch die Befehle startPath() und fillPath() verwendet werden.

startPath()
Das Zeichnen eines Pfad wird mit dem Befehl startPath() eingeleitet.

fillPath()
Der Endpunkt des Pfades wird mit dem Anfangspunkt verbunden und die eingeschlossenen Flächen werden mit der Füllfarbe gefüllt.

Beispiel 3: Pfad zeichnen und Flächen füllen
Ein Pfad besteht hier aus einer Sternfigur.

 
Ausführen mit Webstart
# Tu4b.py

from gturtle import *

makeTurtle()

setFillColor("magenta")
startPath()
for i in range(5):
    forward(160)
    left(144)
fillPath()
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

Erklärungen zum Programmcode:

Der Befehl startPath() muss vor dem Zeichnen des Pfades stehen
fillPath() steht am Schluss des Pfades. Danach wird die Figur gefüllt

 

  Zusatzstoff

  Farbauswahl mit ColorChooser

In den meisten Grafikprogrammen kann eine Farbe per Mausklick in einer Farbauswahlbox gewählt werden. Auch unsere Turtlegrafik bietet diese Möglichkeit.

Mit dem Befehl askColor() wird eine Dialogbox geöffnet, in der mit Mausklick eine Farbe gewählt und mit OK die Auswahl bestätig wird.

 

 
Ausführen mit Webstart
Beispiel 4: Farbauswahl mit Dialogfeld askColor()

# Tu4c.py

from gturtle import *

makeTurtle()

clear("black")
for x in range(-250, 250, 75):
    setPos(x, x + 30)
    color = askColor("Farbauswahl", "yellow")
    setPenColor(color)
    fillToPoint(x, x)
    for i in range(6):
        fd(30).rt(120).fd(30).lt(60)  
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

Erklärungen zum Programmcode:

clear("black") : übermalt das Turtlefenster mit der schwarzen Farbe (löscht dabei alle Zeichnungen)
color = askColor("Farbauswahl", "yellow"): öffnet die Dialogbox Farbauswahl.

setPenColor(color): setzt die Stiftfarbe auf die gewählte Farbe
Das Programm hat aber noch einen Fehler: Wenn keine Farbe ausgewählt wird (Klick auf Abbrechen in der Dialogbox), kann die Stiftfarbe nicht gesetzt werden und das Programm stürzt ab. Wie man diesen Fehler "abfangen" kann zeigen wir im nächsten Abschnitt.

 

  Regebogenfarben (Farben aus einer Liste auswählen)

Der X11Color.RAINBOW_COLORS() liefert eine Liste mit 40 Farben.

Beispiel 5: Dicke Linien in Regenbogen-Farben zeichnen..

# Tu4d.py

from gturtle import *

makeTurtle()
colors = X11Color.RAINBOW_COLORS
hideTurtle()
setLineWidth(10)
x = -200
for i in range(40):
   setPenColor(colors[i])
   setPos(x + 10 * i, -200)
   forward(400)
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)
 
Ausführen mit Webstart

Erklärungen zum Programmcode:

Der Befehl colors = X11Color.RAINBOW_COLORS() liefert eine Liste mit 40 Regenbogen-Farben. Diese können in einer for-Schleife mit colors[i] nacheinander gewählt werden
setLineWidth(10) bewirkt, dass die gezeichneten linien 10 Pixel breit sind

 

  Wrap-Modus

Mit dem Befehl wrap() wird die Turtle in den Wrap-Modus versetzt. Dieser bewirkt, dass die Turtle nach dem Verlassen des Turtle-Fensters auf der gegenüber liegenden Seite wieder im Fenster erscheint und das Zeichnen fortsetzt.

Beispiel 6: Verwendung der Methode wrap().

 # Tu4e.py

from gturtle import *

makeTurtle()

wrap();
speed(-1)
setColor("green")
fillToPoint(125, 0)
setPenColor("green")
setPos(-50, 0)
for i in range(120):
    fd(10).rt(3)
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)
 
Ausführen mit Webstart

 


Aufgaben: Serie 4

 

  Zeichne folgende Figuren:

1)

2)

 

3)

4)


5)

Verwende die Funktionen
startPath() und fillPath(),
um die nebenstehende Figur zu zeichen

(Farbname: "darkviolet")


6)

Auch bei dieser Aufgabe kannst du die Befehle
startPath() und fillPath() verwenden.