Python exemplarisch |
Figuren zeichnen und positionieren |
Der unsichtbarer Grafikcursor befindet sich default im Punkt (0, 0) und kann mit der Funktion pos(x, y) an eine beliebige Position im Grafikfenster verschoben werden. Viele Funktionen zum Zeichnen von Formen verwenden die aktuelle Lage des Grafikcursors.
|
► | Erklärungen zum Programmcode |
Die Zeichnungsfunktionen können als Parameter ganze Zahlen, Dezimalzahlen, Punktlisten/tupels oder komplexe Zahlen haben. Für die Darstellung werden diese Zahlen in Pixel umgerechnet, so dass wie üblich Benutzerkoordinaten (durch xmin, xmax, ymin, ymax festgelegt) verwendet werden. |
Zufälliges Malen |
Programm: [►] #ShapesEx2.py from gpanel import * from random import randint makeGPanel(0, 100, 0, 100) for i in range(80): pos(randint(0, 100), randint(0, 100)) setColor(makeColor(randint(0, 255), randint(0, 255), randint(0, 255))) fillRectangle(randint(10, 30), randint(5, 30)) keep() |
► | Erklärungen zum Programmcode |
Man kann auch das ganze Modul random importieren (import random) und die ganzzahligen Zufallszahlen durch Vorstellen des Präfix random mit random.randint() erzeugen. Das Modul random enthält auch die wichtige Funktion random(). |
Schachbrett |
Programm: [►] # ShapesEx3.py from gpanel import * makeGPanel(0, 8, 0, 8) for i in range(8): for j in range(8): if (i + j) % 2 == 0: fillRectangle(i, j, i + 1, j + 1) keep() |
► | Erklärungen zum Programmcode |
(i + j) % 2 gibt den Rest nach der Division durch 2. Ist der Rest 0, so ist (i + j) eine gerade Zahl. |
Polygone zeichnen |
Programm: [►] # ShapesEx4.py from gpanel import * makeGPanel(-10, 10, -10, 10) corners = [(-5, -2), (-2, -6), (1, -5), (4, 2), (-1, 3)] setColor("fuchsia") fillPolygon(corners) keep() |
Geschlossene Flächen mit "floodfill" färben |
Programm: [►] #ShapesEx5.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", "red") keep() |
► | Erklärungen zum Programmcode |
Die Farbe in der Funktion fill() kann auch mit makeColor(r, g, b) gesetzt werden: |
Farbmischung im RGB-Modell |
Programm: [►] # ShapesEx6.py from gpanel import * xRed = 200 yRed = 200 xGreen = 300 yGreen = 200 xBlue = 250 yBlue = 300 makeGPanel(Size(501, 501)) enableRepaint(False) window(0, 500, 500, 0) # y axis downwards for x in range(501): for y in range(501): red = green = blue = 0 if (x - xRed) * (x - xRed) + (y - yRed) * (y - yRed) < 16000: red = 255 if (x - xGreen) * (x - xGreen) + (y - yGreen) * (y - yGreen) < 16000: green = 255 if (x - xBlue) * (x - xBlue) + (y - yBlue) * (y - yBlue) < 16000: blue = 255 setColor(makeColor(red, green, blue)) point(x, y) repaint() keep() |
► | Erklärungen zum Programmcode |
xRed, yRed, xGreen, yGreen, xBlue, yBlue sind die Mittelpunkte der drei Farbkreise. |