Flächenfärbung in Python
Die Flächenfärbung erlaubt es, Flächen mit einer Farbe zu füllen. Dazu muß sich die Schildkröte um die Fläche herumbewegen.
»fillcolor( r, g, b )« – Füllfarbe festlegen
»fillcolor( r, g, b )« Die Werte für die drei Komponenten der Füllfarbe (Rot, Grün und Blau) werden durch diesen Aufruf festgelegt. Der Wertebereich liegt dabei jeweils zwischen «0.0» und «1.0», falls dies nicht zuvor mit »colormode( 255 )« anders festgelegt wurde.
»begin_fill()« – Beginn des Füllens
»begin_fill()« Beginn des Füllens der gezeichneten Figur mit einer Farbe. Die aktuelle Position der Schildkröte wird zur Anfangsposition des die Fläsche umschließenden Weges. Hiernach sollte nicht erneut »begin_fill()« ausgewertet werden, bevor nicht »end_fill()« ausgewertet wurde. Nach Auswertung von »begin_fill()« sollte irgendwann einmal »end_fill()« ausgewertet werden.
»end_fill()« – Ende des Füllens
»end_fill()« Die aktuelle Position der Schildkröte wird zur Endposition des die zu fülllende Fläche umschließenden Weges. Hiervor sollte irgendwann einmal »begin_fill()« ausgewertet worden sein, das zuletzt ausgewertete »begin_fill()« hat die Anfangsposition des Weges festgelegt. Der Weg wird durch eine Verbindung der Endposition mit der Anfangsposition automatische geschlossen. Anschließend wird die durch den Weg umrandete Fläche mit der aktuellen Füllfarbe ausgefüllt. Dies geschieht selbst dann, wenn der Weg mit erhobenem Stift gezeichnet wurde und daher selber nicht sichtbar ist.
Vor Beginn einer Bewegung um die auszufüllende Fläche herum, muß »begin_fill()« ausgewertet werden und am Ende der Bewegung »end_fill()«. Dann wird alles, was sich im Inneren der von der Schildkröte durchlaufenen Linie befindet, mit der dafür festgelegten Füllfarbe gefüllt.
Im Idealfall ist die Schildkröte am Ende ihrer Bewegung (der Position bei Auswertung von »end_fill()«) wieder am Ausgangspunkt der Bewegung angekommen, so daß sie einen geschlossenen Weg hinter sich hat, der eine Innenfläche umschließt. Falls dies nicht so ist, wird die aktuelle Position der Schildkröte automatisch mit dem Ausgangspunkt (der Position bei Auswertung von »begin_fill()«) verbunden, um die Fläche abzuschließen.
Beispiel zum Füllen
Das folgende Programm zeichnet zwei Dreiecke mit erhobenem Stift, die jeweils mit einer Farbe gefüllt werden. Die Farbangabe »( 0.8, 0.2, 0.2 )« beschreibt eine Farbe, die vorwiegend rot ist, während »( 0.2, 0.8, 0.2 )« vorwiegend grün ist.
main.py
from turtle import *
penup()
fillcolor( 0.8, 0.2, 0.2 )
begin_fill()
forward( 99 ); left( 360/3 )
forward( 99 ); left( 360/3 )
forward( 99 ); left( 360/3 )
end_fill()forward( 99 ); left( 180/3 )
fillcolor( 0.2, 0.8, 0.2 )
begin_fill()
forward( 99 ); left( 360/3 )
forward( 99 ); left( 360/3 )
forward( 99 ); left( 360/3 )
end_fill()hideturtle()
Übersicht der behandelten Namen
Die folgenden Tabellen beschreiben kurz die bisher behandelten Namen aus dem Schildkrötenmodul.
- Einstellungen
speed( True ) Verlangsamung aktivieren
speed( False ) ohne Verlangsamung zeichnenpendown() Stift auf Zeichenflaeche absenken
penup() Stift von Zeichenflaeche wegnehmenpensize( p ) Stiftbreite auf p Pixel einstellen
hideturtle() Schildkroete verstecken
showturtle() Sichtbarmachen der Schildkroete- Bewegungen
home() Anfangsposition
left( g ) Linksdrehung um g Grad
right( g ) Rechtsdrehung um g Gradforward( p ) Vorwaertsbewegung um p Pixel
backward( p ) Rueckwaertsbewegung um p Pixel- Farben
colormode( 1 ) Intensitaetsbereich 0.0 bis 1.0
colormode( 255 ) Intensitaetsbereich 0 bis 255bgcolor( r, g, b ) Hintergrundfarbe festlegen
fillcolor( r, g, b ) Fuellfarbe festlegen
pencolor( r, g, b ) Stiftfarbe festlegen- Füllen
begin_fill() Beginn des Fuellbereichs
end_fill() Ende und Fuellen des Fuellbereichs
Rückblende Wir hatten eine Inkarnation als eine Maschine, die ein Programm ausführt kennengelernt. Die Schildkröte illustriert diese Vorstellung.
Rückblende Wir hatten Werte und Änderungen kennengelernt. Bei der Programmierung von Schildkröten werden fast ausschließlich Aufrufe eingesetzt, die Änderungen hervorrufen, aber die Werte von Argumenten dienen dabei dazu, diese Wirkungen näher zu bestimmen.
Die Schildkrötenprogrammierung illustriert den imperativen Programmierstil, bei dem einen Ausführer Kommandos gegeben werden (meist eine Abfolge mehrerer Kommandos). Man kann dies etwa mit einem deklarativen Stil vergleichen, bei dem durch einen Ausdruck ein gewünschter Wert ausgedrückt wird.
Übungsaufgaben
/ Frankreich (20 ′)
Zeichnen Sie die Flagge von Frankreich mit Hilfe des Schildkröten-Moduls auf den Bildschirm.
Das Ergebnis soll für jemanden, der die Flaggen europäischer Länder kennt, als Flagge von Frankreich erkennbar sein.
/ Italien
Zeichnen Sie die Flagge von Italien mit Hilfe des Schildkröten-Moduls auf den Bildschirm.
Das Ergebnis soll für jemanden, der die Flaggen europäischer Länder kennt, als Flagge von Italien erkennbar sein.
/ Schweiz
Zeichnen Sie die Flagge der Schweiz mit Hilfe des Schildkröten-Moduls auf den Bildschirm.
Das Ergebnis soll für jemanden, der die Flaggen europäischer Länder kennt, als Flagge der Schweiz erkennbar sein.