Python Online
Home    

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)
gibt Bildschirmbreite zurück (in Pixels)
gibt Bildschirmhöhe zurück (in Pixels)
window(xmin, xmax, ymin, ymax)
setzt ein neues Koordinatensystem

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

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
clearStore(color) löscht den internen Buffer (überschreibt mit Farbe)
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)
zeichnet quadratische Bezier-Kurve mit 2 Punkten (x1, y1), (x2, y2) und Kontrollpunkt (xc, yc)
zeichnet quadratische Bezier-Kurve mit 3 Punktlisten
zeichnet kubische Bezier-Kurve mit 2 Punkten (x1, y1), (x2, y2) und 2 Kontrollpunkten (xc1, yc1), (xc2, yc2)
zeichnet kubische Bezier-Kurve mit 2 Punktlisten und 2 Kontrollpunktlisten
zeichnet Dreieck mit Eckpunkten
zeichnet Dreieck mit Eckpunktlisten
triangle(li[pt1, pt2, pt3])
zeichnet Dreieck mit Liste der Eckpunkte
zeichnet gefülltes Dreieck (Füllfarbe = Stiftfarbe)
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]
fill(x, y, color, replacementColor) füllt geschlossenes Gebiet um Punkt (x, y). color wird durch replacementColor ersetzt (floodfill)
fill(pt, color,replacementColor) füllt geschlossenes Gebiet um Punkt pt. color wird durch replacementColor ersetzt (floodfill)
image(path, x, y) fügt eine Bild im GIF- , PNG- oder JPG-Format mit unterer linker Ecke bei (x, y) ein. Pfad zur Bilddatei: Relativ zum Verzeichnis von TigerJython, im Distributions-JAR (Verzeichnis sprites) oder mit http:// vom Internet.
image(path, pt) dasselbe mit Punktliste
imageHeight(path) gibt die Bildhöhe zurück
imageWidth(path) gibt die Bildbreite zurück
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)
setPaintMode() wählt den normalen Zeichnungsmodus
setXORMode(color) wählt den XOR-Zeichnungsmodus mit gegebener Farbe. Zweimaliges Zeichnen löscht
getPixelColor(x, y) gibt Farbe am Punkt (x, y) als Color type zurück
getPixelColor(pt) gibt Farbe an Punktliste pt = [x, y] als Color PixelColor(type zurück
getPixelColorStr(x, y) gibt Farbe am Punkt (x, y) als X11-Farbstring zurü(ck
getPixelColorStr(pt) gibt Farbe an Punktliste als X11-Farbstring zurück
makeColor(value) erzeugt eine Farbe. value-Beispiele: ("red"), ("7FFED4"), (0x7FFED4), (8388564), (0.5, 1.0, 0.83), (128, 255, 212), ("rainbow"", n) mit n = 0..1, Lichtspektrum
makeColor(color, alpha) erzeugt eine transparente Farbe, 0 < alpha < 1 (makeColor("red", 0.25) )

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
registriert die Callbackfunktion onKeyPressed(keyCode), die beim Drücken einer Tastaturtaste aufgerufen wird. keyCode ist ein für die Taste eindeutiger integer Code
getKeyModifiers()

liefert nach einem Tastaturevent einen Code für Spezialtasten (Shift, Ctrl, usw., auch kombiniert)

makeGPanel(closeClicked = onCloseClicked)
registriert die Callbackfunktion onCloseClicked(), die beim Klick des Close-Buttons der Titelzeile aufgerufen wird. Das Fenster muss mit dispose() geschlossen werden
showSimulationBar(NNN = onNNN) zeigt ein Dialogfenster mit den Button 'Step', 'Run'/'Pause', 'Reset' und einem Slider zum Einstellen der Simulationsperiode. Folgende Callbacks NNN können registiert werden: start, pause, step, reset, change(Parameter: simulationPeriod), loop, exit (close button gedrückt). loop wird in jedem Simulationszyklus vom Simulationsthread aufgerufen
showSimulationBar(ulx, uly, initPeriod, NNN = onNNN) wie oben, aber mit Positionierung des Dialogfensters (obere linke Ecke) und Anfangswert der Simulationsperiode (default: 100)
hideSimulationBar() schliesst das Dialogfenster und gibt alle Ressourcen frei

Tastatur
getKey() holt den letzten Tastendruck ab und liefert String zurück (leer, falls illegale Taste)
getKeyCode() holt den letzten Tastendruck ab und liefert Code zurück
getKeyWait() wartet bis Taste gedrückt und liefert String zurück (leer, falls illegale Taste)
getKeyCodeWait() wartet bis Taste gedrückt und  liefert Code zurück
kbhit() liefert True, falls ein Tastendruck noch nicht mit getKey() od. getKeyCode() abgeholt ist

GUI-Komponenten
add(component)   fügt component in einer Zeile am oberen Rand hinzu
validate()   baut das Fenster mit hinzugefügten Komponenten neu auf

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
msgDlg(message, title = title_text) dasselbe mit Titelangabe
inputInt(prompt) öffnet einen modalen Dialog mit OK/Abbrechen-Buttons. OK gibt den eingegebenen Integer zurück (falls kein Integer, wird Dialog neu angezeigt). Abbrechen od. Schliessen beendet das Programm. Mit dem benannten Parameter init kann ein Initialisierungswert gesetzt werden
inputInt(prompt, False) dasselbe, aber Abbrechen/Schliessen beendet das Programm nicht, sondern gibt None zurück. Mit dem benannten Parameter init kann ein Initialisierungswert gesetzt werden
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
inputFloat(prompt, False) dasselbe, aber Abbrechen/Schliessen beendet das Programm nicht, sondern gibt None zurück. 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
inputString(prompt, False) dasselbe, aber Abbrechen/Schliessen beendet das Programm nicht, sondern gibt None zurück. Mit dem benannten Parameter init kann ein Initialisierungswert gesetzt werden
input(prompt) öffnet einen modalen Dialog mit OK/Abbrechen-Buttons. OK gibt Eingabe als Integer, Float oder String zurück. Abbrechen od. Schliessen beendet das Programm. Mit dem benannten Parameter init kann ein Initialisierungswert gesetzt werden
input(prompt, False) dasselbe, aber Abbrechen/Schliessen beendet das Programm nicht, sondern gibt None zurück. Mit dem benannten Parameter init kann ein Initialisierungswert gesetzt werden
askYesNo(prompt) öffnet einen modalen Dialog mit Ja/Nein-Buttons. Ja gibt True, Nein gibt False zurück. Schliessen beendet das Programm
askYesNo(prompt, False) dasselbe, aber Schliessen beendet das Programm nicht, sondern gibt None zurück

Klasse GBitmap
bm = GBitmap(width, height)   erzeugt Bitmap mit gewünschte Anzahl horizontaler und vertikaler Bildpunkten
bm = GBitmap(width, height)   erzeugt Bitmap mit gewünschte Anzahl horizontaler und vertikaler Bildpunkten
bm.getPixelColor(x ,y) liefert die Farbe des Pixels mit der Koordinate (x, y)
bm.getPixelColorStr(x ,y) gibt den X11-Color-Namen der Farbe im Pixels mit der Koordinate (x, y)
bm.setPixelColor(x ,y, color) setzt die Farbe des Pixels (x, y)
bm.setPixelColorStr(x ,y, color) setzt die X11-Color-Farbe des Pixels (x, y)
image(bm, x, y) stellt Bitmap bm im GPanel an der Position x, y dar
save(img, imgname, imgtype) speichert Bild unter dem gegebnen Dateinamen


Bilderbibliothek

Bilder, die in der WebTigerJython-Distribution integriert sind: sprites.html