Das Modul GPanel verfügt über viele Grafikfunktionen, mit welchen man geometrische Formen zeichnen kann.
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 |
Für Figuren, die keine Koordinatenangaben erhalten, muss man 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.
# 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) |
Erklärungen zum Programmcode:
makeGPanel(-10, 10, -10, 10): erzeugt ein GPanel mit einem Koordinatensystem x = -10..10 und y = - 10..10. Der Grafikcursor befindet sich zu Beginn in der Mitte der Grafikfensters im Punkt mit den Koordinaten (0, 0) und wird erst beim Zeichnen der letzten Figur an die Position (5, 5) versetzt. |
Beispiel 2: Formen, die durch die Koordinaten der Eckpunkte bestimmt sind.
# 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) |
Erklärungen zum Programmcode:
lineWidth(3): setzt die Liniendicke auf 3 Pixel | |
Die korrekte Syntax aller Grafikbefehle kann man jederzeit in der Dokumentation nachschlagen. Einen Link zur Dokumentation findet man auch im TigerJython-Editor unter Hilfe/Aplu-Dokumentation. |
Beispiel 3: Mit "floodfill" eine geschlossene Figur füllen
Eine Figur kann nachträglich gefüllt werden. Dazu verwendet man 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.
# 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") |
Erklärungen zum Programmcode:
fill(0, 0, "white", "magenta": füllt das weiss gefüllte Dreieck, in dem sich der Punkt (0, 0) befindet, mit einer rosaroten Farbe. |
Aufgaben: Serie 2 |
1) |
|
2) |
Zeichne ein Schweizerkreuz. |
3) |
Zeichne einen Regenbogen. Verwende dazu den Befehl fillArc(r, startwinkel, endwinkel). |