2. Formen und Farben

 

 

DU LERNST HIER...

 

Das Modul GPanel verfügt über viele Grafikfunktionen, mit welchen du geometrische Formen zeichnen kannst. Hier die wichtigsten Befehle:


point(x, y)
line(x1, y1, x2, y2)
rectangle(width, height)
fillRectangle(width, height)
rectangle(x1, y1, x2, y2)
fillRectangle(x1, y1, x2, y2)
triangle(x1, y1, x2, y2, x3, y3)
circle(r)
fillCircle(r)
ellipse(a, b)
arc(r, startwinkel, endwinkel)
fillArc(r, startwinkel, endwinkel)

Ein Punkt
Eine Linie
Ein Rechteck (Breite, Höhe)
Ein ausgefülltes Rechteck
Ein Rechteck (Eckpunkte)
Ein ausgefülltes Rechteck
Ein Dreieck (Eckpunkte)
Ein Kreis mit Radius r
Ein ausgefüllter Kreis
Eine Ellipse mit den Achsen a, b
Ein Kreisbogen
Ein ausgefüllter Kreisbogen


 

 

MUSTERBEISPIELE

 

Für Figuren, die keine Koordinatenangaben erhalten, musst du zuerst mit pos(x, y) die Position des Mittelpunktes festlegen. Der unsichtbarer Grafikcursor befindet sich standardmässig im Punkt (0, 0). Die oben aufgeführten Funktionen verändern die Lage des Grafikcursors nicht.

Die aktuelle Zeichnungsfarbe wird mit dem Befehl setColor("farbe") gesetzt, GPanel kennt die sogenannten X11-Farben. Es handelt sich um einige dutzend Farbnamen, die man im Internet unter http://cng.seas.rochester.edu/CNG/docs/x11color.html nachschlagen kann (z.B. "red", "yellow", "blue", "green", "magenta", usw.).

Die Farbe kann auch mit dem Befehl setColor(r, g, b) gesetzt werden, wobei r, g, b ganze Zahlen zwischen 0 und 255 sind (RGB-Farbkomponenten). Eine hellgrüne Farbe erhält man z. B. mit setColor(0, 255, 0).

Beispiel 1: Kreise und Rechtecke in verschiedenen Farben

Programm:  

# Gp2a.py
from gpanel import *

makeGPanel(-10, 10, -10, 10)
circle(10)
setColor("darkblue")
fillRectangle(19, 6)
setColor("yellow")
fillRectangle(14,14)
setColor("red")
fillCircle(4)
setColor("green")
pos(5, 5)
fillCircle(2)
► In Zwischenablage kopieren
 


Beispiel 2
: Formen, die durch die Koordinaten der Eckpunkte bestimmt sind
Du kannst auch dickere Linien zeichnen. lineWidth(3): setzt die Liniendicke auf 3 Pixel.

Programm:  

# Gp2b.py
from gpanel import *

makeGPanel(0, 10, 0, 10)

setColor("yellow")
fillRectangle(2, 2, 8, 5)
setColor("red")
fillTriangle(2, 5, 8, 5, 5, 8)
setColor("darkblue")
lineWidth(3)
rectangle(3, 3, 4, 4) 
rectangle(6, 3, 7, 4) 
► In Zwischenablage kopieren
 

 

Beispiel 3: Mit "floodfill"  eine geschlossene Figur füllen
Eine Figur kann nachträglich gefüllt werden. Dazu verwendest du die Funktion fill(x, y, oldcolor, color). x, y sind Koordinaten eines Punktes, der sich in der zu färbenden Figur befindet, oldcolor ist die aktuelle Füllfarbe und color die neue Füllfarbe. fill(0, 0, "white", "magenta": füllt das weiss gefüllte Dreieck, in dem sich der Punkt (0, 0) befindet, mit einer rosaroten Farbe.

Programm:  

# Gp2c.py
from gpanel import *

makeGPanel(-10, 10, -10, 10)

line(-6, -3, 4, 6)
line(-1, 7, 6, -5)
line(-8, 1, 7, -4)
fill(0, 0, "white", "magenta")
► In Zwischenablage kopieren
 

 

 

MERKE DIR...

 

Die korrekte Syntax der Grafikbefehle kannst du jederzeit in der Dokumentation nachschlagen. Einen Link zur Dokumentation findest du auch im WebTigerJython-Editor unter Menü.

Der unsichtbarer Grafikcursor befindet sich standardmässig im Punkt (0, 0). Mit dem Befehl pos(x, y) kannst du ihn an eine beliebige Position im Grafik-Fenster versetzen.

 

 

ZUM SELBST LÖSEN

 

1)


Wähle ein geeignetes Koordinatensystem und zeichne eine Verkehrsampel gemäss der nebenstehenden Vorlage.

 

 

2)

Zeichne ein Schweizerkreuz.
 

 

3)

Zeichne einen Regenbogen. Verwende dazu den Befehl fillArc(r, startwinkel, endwinkel).