Dokumentation GPanel

Import: from gpanel import *

Beispielprogramme mit Klick auf die grün markierten Links


Befehl Aktion
makeGPanel() erzeugt ein (globales) GPanel-Grafikfenster mit Koordinaten (0, 1, 0, 1). Cursor auf (0, 0)
makeGPanel(xmin, xmax, ymin, ymax)
erzeugt ein (globales) GPanel-Grafikfenster mit angegebenen Koordinaten. Cursor auf (0, 0)
makeGPanel(Size(width, height))
wie makeGPanel(), aber Fenstergrösse wählbar (in Pixels)
getScreenWidth()
gibt Bildschirmbreite zurück (in Pixels)
getScreenHeight()
gibt Bildschirmhöhe zurück (in Pixels)
window(xmin, xmax, ymin, ymax)
setzt ein neues Koordinatensystem
drawGrid(x1, x2, y1, y2)

dasselbe im Bereich  x1..x2, y1..y2

drawGrid(x1, x2, y1, y2, color)

dasselbe mit Angabe der Farbe

dasselbe mit Angabe der Anzahl der Anzahl Ticks x3, y3 in x- und y-Richtung

dasselbe mit Angabe der Farbe

bgColor(color) setzt die Hintergrundfarbe (X11-Farbstring oder Color type, zurückgegeben von makeColor())
storeGraphics() speichert die Grafik in einem internen Buffer
recallGraphics() rendert die Grafik aus dem internen Buffer
delay(time) Programm um Zeit time (Millisekunden) anhalten
getDividingPoint(pt1, pt2, ratio) liefert den Teilpunkt der Strecke mit Punktlisten pt1, pt2, der sie im Teilverhältnis ratio teilt
clear() löscht Fensterinhalt (füllt mit Hintergrundfarbe) und setzt Cursor auf (0, 0)
erase() löscht Fensterinhalt (füllt mit Hintergrundfarbe) ohne Veränderung des Cursors
putSleep()
hält den Programmablauf an, bis wakeUp() aufgerufen wird
wakeUp() führt angehaltenen Programmablauf weiter

Zeichnen
lineWidth(width) setzt die Stiftdicke (in Pixel)
setColor(color) setzt die Stiftfarbe (X11-Farbstring oder Colortype)
move(x, y) setzt Cursor auf (x, y) ohne zu zeichnen
getPosX() liefert x-Koordinate des Cursors
getPosY() liefert y-Koordinate des Cursors
getPos() liefert  Cursorposition als Punktliste
draw(x, y) zeichnet Linie zu neuem Punkt (x, y) und ändert Cursor
draw(coord_list) zeichnet Linie zu Punktliste = [x, y] und ändert Cursor
line(x1, y1, x2, y2) zeichnet Linie von (x1, y1) zu (x2, y2) ohne Änderung des Cursors
line(pt1, pt2) zeichnet Linie von pt1 = [x1, y1] zu pt2 = [x2, y2] ohne Änderung des Cursors
circle(radius) zeichnet Kreis mit Mitte bei Cursor und gegebenem Radius
fillCircle(radius) zeichnet gefüllten Kreis (Füllfarbe = Stiftfarbe)
ellipse(a, b) zeichnet Ellipse mit Mitte bei Cursor und Halbachsen
fillEllipse(a, b) zeichnet gefüllte Ellipse (Füllfarbe = Stiftfarbe)
rectangle(a, b) zeichnet Rechteck mit Zentrum bei Cursor und Seiten
rectangle(x1, y1, x2, y2) zeichnet Rechteck mit gegenüberliegenden Eckpunkten
rectangle(pt1, pt2) zeichnet Rechteck mit gegenüberliegenden Punktlisten
fillRectangle(a, b) zeichnet gefülltes Rechteck (Füllfarbe = Stiftfarbe)
fillRectangle(x1, y1, x2, y2) zeichnet gefülltes Rechteck (Füllfarbe = Stiftfarbe)
fillRectangle(pt1, pt2) zeichnet gefülltes Rechteck (Füllfarbe = Stiftfarbe)
arc(radius, startAngle, extendAngle)
zeichnet Kreisbogen mit Zentrum bei Cursor, Radius und Start- und Sektorwinkel (0 nach Osten, positiv im Gegenuhrzeigersinn)
fillArc(radius, startAngle, extendAngle)
zeichnet gefüllten Kreisbogen (Füllfarbe = Stiftfarbe)
polygon(x_list, y_list) zeichnet Polygon mit Eckpunkten mit x-Koordinaten aus der Liste x_list und y-Koordinaten aus  y_list
polygon((li[pt1, pt2,..]) zeichnet Polygon mit Liste aus Eckpunktlisten pt1, pt2,...
fillPolygon(x_list, y_list) zeichnet gefülltes Polygon (Füllfarbe = Stiftfarbe)
fillPolygon((li[pt1, pt2,..]) zeichnet gefülltes Polygon (Füllfarbe = Stiftfarbe)
quadraticBezier(x1, y1, xc, yc, x1, y2)
zeichnet quadratische Bezier-Kurve mit 2 Punkten (x1, y1), (x2, y2) und Kontrollpunkt (xc, yc)
quadraticBezier(pt1, pc, pt2)
zeichnet quadratische Bezier-Kurve mit 3 Punktlisten
cubicBezier(x1, y1, xc1, yc1, xc2, yc2, x2, y2)
zeichnet kubische Bezier-Kurve mit 2 Punkten (x1, y1), (x2, y2) und 2 Kontrollpunkten (xc1, yc1), (xc2, yc2)
cubicBezier(pt1, ptc1, ptc2, pt2)
zeichnet kubische Bezier-Kurve mit 2 Punktlisten und 2 Kontrollpunktlisten
triangle(x1, y1, x2, y2, x3, y3)
zeichnet Dreieck mit Eckpunkten
triangle(pt1, pt2, pt3)
zeichnet Dreieck mit Eckpunktlisten
fillTriangle(x1, y1, x2, y2, x3, y3)
zeichnet gefülltes Dreieck (Füllfarbe = Stiftfarbe)
fillTriangle(pt1, pt2, pt3)
zeichnet gefülltes Dreieck (Füllfarbe = Stiftfarbe)
fillTriangle(li[pt2, pt2, pt3]) zeichnet gefülltes Dreieck (Füllfarbe = Stiftfarbe)
point(x, y) zeichnet 1-Pixel-Punkt bei (x, y)
point(pt) zeichnet 1-Pixel-Punkt bei Punktliste pt = [x,y]
enableRepaint(boolean) aktiviert/deaktiviert das automatische Rendern des Offscreen-Buffers (Standard: aktiviert)
repaint() rendert den Offscreen-Buffer (nötig, wenn das automatische Rendern deaktiviert ist)
getPixelColor(x, y) gibt Farbe im Punkt (x, y) als Liste [r, g, b] zurück
getPixelColorStr(x, y) gibt Farbe im Punkt (x, y) bei WebTigerPython als Farbname (z.B. "red") ,bei WebTigerJython als Hex-Farbcode (z.B. #ff0000) zurück

Text
text(string) schreibt Text mit Beginn beim aktuellen Cursor
text(x, y, string) schreibt Text mit Beginn bei Punkt (x, y)
text(pt, string) schreibt Text mit Beginn bei Punktliste pt = [x, y]

Callbacks

makeGPanel(mouseNNN = onMouseNNN)
auch mehrere, durch Komma getrennt

registriert die Callbackfunktion onMouseNNN(x, y), die beim Mausevent aufgerufen wird. Werte für NNN: Pressed, Released, Clicked, Dragged, Moved, Entered, Exited, SingleClicked, DoubleClicked

isLeftMouseButton(),
isRightMouseButton()

gibt True zurück, falls beim Event die linke bzw. rechte Maustaste verwendet wurde

Tastatur
makeGPanel(keyPressed = onKeyPressed) registriert die Callbackfunktion onKeyPressed(key), die beim Drücken einer Tastaturtaste aufgerufen wird
onKeyPressed(key) Callbackfunktion gibt key zurück. Im WebTigerJython den nummerischen Code der gedrücken Taste, im WebTigerPython den Namen der gedrückten Taste (z.b. Enter, Escape, ArrowUp, r, g, usw.)


Statusbar
addStatusbar(height)   fügt eine Statusbar mit gegebener Höhe in Pixels hinzu
setStatusText(text)   schreibt Text in Statusbar
setStatusText(text, font, color) schreibt Text mit Font und Textfarbe in Statusbar

Font-Format
Font(name, style, size) erzeugt eine neues Font mit gegebenen Namen, Stil und Grösse
name ein String mit einem dem System bekannten Fontnamen, z.B.. "Times New Roman", "Arial", "Courier"
style einer der Konstanten: 0: Font.PLAIN, 1: Font.BOLD,
2: Font.ITALIC 3: Font.BOLD + Font.ITALIC
size ein Integer mit einer auf dem System verfügbaren Font-Grösse (in pixels), z.B. 12, 16, 72


Dialoge   
msgDlg(message) öffnet einen modalen Dialog mit einem OK-Button und gegebenem Mitteilungstext
inputInt(prompt) öffnet einen Eingabe- Dialog mit Bestätigung-Buttons und gibt den eingegebenen Integer zurück
inputFloat(prompt) öffnet einen modalen Dialog mit OK/Abbrechen-Buttons. OK gibt den eingegebenen Float zurück (falls kein Float, wird Dialog neu angezeigt). Abbrechen od. Schliessen beendet das Programm. Mit dem benannten Parameter init kann ein Initialisierungswert gesetzt werden
inputString(prompt) öffnet einen modalen Dialog mit OK/Abbrechen-Buttons. OK gibt den eingegeben String zurück. Abbrechen od. Schliessen beendet das Programm. Mit dem benannten Parameter init kann ein Initialisierungswert gesetzt werden