Flächenfärbung in Python (Flächenfärbung in Python), Lektion, Seite 724080
https://www.purl.org/stefan_ram/pub/flaechenkontrolle_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

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 zeichnen

pendown() Stift auf Zeichenflaeche absenken
penup() Stift von Zeichenflaeche wegnehmen

pensize( 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 Grad

forward( 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 255

bgcolor( 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.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724080 stefan_ram:724080 Flächenfärbung in Python Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724080, slrprddef724080, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/flaechenkontrolle_python