home

Dokumentation Turtlegrafik

Module import: from gturtle import *

Funktion Aktion
makeTurtle() erzeugt eine (globale) Turtle im neuen Grafikfenster und gibt die globale Turtlereferenz zurück
makeTurtle(color) erzeugt eine Turtle mit gegebener Farbe und gibt die globale Turtlereferenz zurück
makeTurtle("sprites/turtle.gif") erzeugt Turtle mit einem eigenen Turtle-Bild turtle.gif und gibt die globale Turtlereferenz zurück
makeTurtle(color, size) erzeugt eine kreisförmige Turtle mit gegebener Farbe und Durchmesser (in Pixel)
getTurtle() gibt die globale Turtlereferenz zurück
t = Turtle() erzeugt ein Turtleobjekt t
tf = TurtleFrame() erzeugt ein Bildschirmfenster, in dem mehrere Turtles leben
tf = TurtleFrame(title) dasselbe, aber mit gegebenem Titel
t = Turtle(tf) erzeugt Turtle t im TurtleFrame tf
clone() erzeugt ein Turtleklon (gleiche Farbe, Position, Blickrichtung)
isDisposed() gibt True zurück, falls das Fenster geschlossen ist
putSleep() hält den Programmablauf an, bis wakeUp() aufgerufen wird
wakeUp() führt angehaltenen Programmablauf weiter
enableRepaint(False) schaltet das automatische Bildschirm-Rendering aus
repaint() rendert den Bildschim (nach dem Ausschalten des automatischen Rendering)
savePlayground() speichert den Playground in einem internen Bildbuffer (zurückholen mit clear())
savePlayground(fileName, format) speichert den Playground als Bilddatei (format: "png" oder "gif"). Im Fehlerfall wird False zurückgegeben. fileName kann eine absolute Pfadangabe sein.
setPlaygroundSize(width, height) setzt die Grösse des Turtlefensters unabhängig von den Einstellungen in TigerJython (muss vor makeTurtle() aufgerufen werden)
setFramePosition(x, y) setzt die obere linke Ecke des Turtlefensters an die gegebene Bildschirmposition
setFramePositionCenter() setzt das Turtlefenster in Bildschirmmitte


Bewegen

back(distance), bk(distance) bewegt Turtle rückwärts
backward(distance) dasselbe wie back(distance)
forward(distance), fd(distance) bewegt Turtle vorwärts
hideTurtle(), ht() macht Turtle unsichtbar (Turtle zeichnet schneller, speed = -1)
home() setzt Turtle in die Mitte des Fensters Richtung nach oben
left(angle), lt(angle) dreht Turtle nach links
penDown(), pd() setzt Zeichenstift ab (Spur sichtbar)
penErase(), pe() setzt die Stiftfarbe auf die Hintergrundfarbe
leftArc(radius, angle) bewegt Turtle auf einem Bogen mit dem Sektor-Winkel angle nach links
leftCircle(radius) bewegt Turtle auf einem Kreis nach links
penUp(), pu() hebt den Zeichenstift (Spur unsichtbar)
penWidth(width) setzt die Dicke des Stifts in Pixel
setPenWidth(width) setzt die Dicke des Stifts in Pixel
right(angle), rt(angle) dreht Turtle nach rechts
rightArc(radius, angle) bewegt Turtle auf einem Bogen mit dem Sektor-Winkel angle nach rechts
rightCircle(radius) bewegt Turtle auf einem Kreis nach rechts
setCustomCursor(cursorImage) wählt die Bilddatei des Mauscursors
setCustomCursor(cursorImage, Point(x, y)) wählt die Bilddatei des Mauscursors unter Angabe der Mausposition innerhalb des Bildes
setLineWidth(width) setzt die Dicke des Stifts in Pixel
setEndCap(style) setzt die Art, wie das Ende einer Linie gezeichnet wird: "square" (default), "round" (abgerundet), "clip" (abgeschnitten)
showTurtle(), st() zeigt Turtle
speed(speed) setzt Turtlegeschwindigkeit (1 bis 1000, default: 200, -1: keine Animation)
delay(time) hält das Programm während der Zeit time (in Millisekunden) an
wrap() setzt Turtlepositionen ausserhalb des Fensters ins Fenster zurück
clip() Turtles ausserhalb des Fensters sind nicht sichtbar
getPlaygroundWidth() gibt die horizontale Grösse m des Turtlefensters zurück (Turtlekoordinaten x = -m/2..m/2)
getPlaygroundHeight() gibt die vertikale Grösse n des Turtlefensters zurück (Turtlekoordinaten y = -n/2..n/2)


Positionieren

direction(x, y) gibt den Winkel (in Grad) für die Drehung zur Position (x, y) zurück
direction(coords) dasselbe, aber Koordinatenangabe als Liste, Tupel oder komplexe Zahl
direction(turtle) gibt den Winkel (in Grad) für die Drehung zu einer anderen Turtle zurück
distance(x, y) gibt die Entfernung der Turtle zum Punkt(x, y) zurück
distance(coords) dasselbe, aber Koordinatenangabe als Liste, Tupel oder komplexe Zahl
distance(turtle) gibt die Entfernung der Turtle zu einer anderen Turtle zurück
getPos() gibt die Turtleposition zurück
getX() gibt die aktuelle x-Koordinate der Turtle zurück
getY() gibt die aktuelle y-Koordinate der Turtle zurück
heading() gibt die Richtung der Turtle zurück
heading(degrees) setzt die Richtung der Turtle (0 ist gegen oben, im Uhrzeigersinn)
moveTo(x, y) bewegt Turtle auf die Position (x, y)
moveTo(coords) dasselbe, aber Koordinatenangabe als Liste, Tupel oder komplexe Zahl
setHeading(degrees), setH(degrees) setzt die Richtung der Turtle (0 gegen oben, im Uhrzeigersinn)
setRandomHeading() setzt die Richtung zufällig zwischen 0 und 360°
setPos(x, y) setzt Turtle auf die Position (x, y)
setPos(coords) dasselbe, aber Koordinatenangabe als Liste, Tupel oder komplexe Zahl
setX(x) setzt Turtle auf x-Koordinate
setY(y) setzt Turtle auf y-Koordinate
setRandomPos(width, height) setzt Turtle auf einen zufälligen Punkt im Bereich width, height
setScreenPos(x, y) setzt Turtle auf gegebene Pixelkoordinaten (x, y)
setScreenPos(Point(x, y)) setzt Turtle auf gegebene Pixelkoordinaten
towards(x, y) gibt die Richtung (in Grad) zur Position (x, y)
towards(coords) dasselbe, aber Koordinatenangabe als Liste, Tupel oder komplexe Zahl
towards(turtle) gibt die Richtung (in Grad) zu einer anderen Turtle zurück
toTurtlePos(x, y) gibt die Turtlekoordinaten der gegebenen Pixelkoordinaten (x, y) als Liste zurück
toTurtlePos(Point(x, y)) gibt die Turtlekoordinaten der gegebenen Pixelkoordinaten als Liste zurück
pushState() speichert den Turtlezustand in einem Stapelspeicher
popState() holt den zuletzt gespeicherten Zustand vom Stapelspeicher
clearStates() löscht den Stapelspeicher


Farben

askColor(title, defaultColor) zeigt ein Fenster zur Farbwahl und gibt die gewählte Farbe zurück (None, wenn Abbrechen gedrückt wurde)
clear() löscht die Zeichnung und versteckt alle Turtles (sie bleiben am Ort). Falls der mit savePlayground() erzeugte Bildbuffer nicht leer ist, wird dieser angezeigt
clear(color) löscht die Zeichnung, versteckt alle Turtles (sie bleiben am Ort) und färbt den Hintergrund
clean() löscht die Turtlespuren (Turtles bleiben am Ort sichtbar). Der mit savePlayground() erzeugte Bildbuffer wird gelöscht
clean(color) löscht die Zeichnung und färbt den Hintergrund (Turtles bleiben am Ort sichtbar).
clearScreen(), cs() löscht die Turtlespuren und setzt die Turtle an Homeposition
dot(diameter) zeichnet einen mit Stiftfarbe gefüllten Kreis
openDot(diameter) zeichnet einen nicht gefüllten Kreis
spray(density, spread, size) zeichnet eine zufällige Punktwolke an der Turtleposition mit geg. Anzahl Punkten, Ausdehnung und Punktgrösse (ohne size: size = 1)
fill() füllt die geschlossene Figur, in der sich die Turtle befindet mit der Füllfarbe
fill(x , y) füllt eine geschlossene Figur mit dem inneren Punkt (x, y) mit der Füllfarbe
fill(coords) dasselbe, aber Koordinatenangabe als Liste, Tupel oder komplexe Zahl
fillToPoint() füllt fortlaufend die gezeichnete Figur von der aktuellen Turtleposition mit der Stiftfarbe
fillToPoint(x , y) füllt fortlaufend die gezeichnete Figur vom Punkt (x, y) mit der Stiftfarbe
fillToPoint(coords) dasselbe, aber Koordinatenangabe als Liste, Tupel oder komplexe Zahl
fillToHorizontal( y) füllt fortlaufend die Fläche zwischen der Figur und der horizontalen Linie (Stiftfarbe)
fillToVertical(x) füllt fortlaufend die Fläche zwischen der Figur und der vertikalen Linie (Stiftfarbe)
fillOff() beendet den fortlaufenden Füllmodus
getColor() gibt die Turtlefarbe zurück
getColorStr() gibt die X11-Turtlefarbe zurück
getFillColor() gibt die Füllfarbe zurück
getFillColorStr() gibt die X11-Füllfarbe zurück
getPixelColor() gibt die Farbe des Pixels an der Turtlekoordinate zurück (None, falls ausserhalb des Turtlefensters)
getPixelColorStr() gibt die Farbe des Pixels an der Turtlekoordinate als X11-Farbe zurück (leerer String, falls kein X11-Farbname existiert; None, falls ausserhalb des Turtlefensters)
makeColor(value) erzeugt eine Farbe. Beispiele für value: ("Aqua-Marine"), ("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 für alpha zwische 0 und 1 (makeColor("red", 0.25) )
getRandomX11Color() gibt eine zufällige X11-Farbe zurück
setColor(color) legt Turtlefarbe fest
setPenColor(color) legt Stiftfarbe fest
setFillColor(color) legt Füllfarbe fest
startPath() startet die Aufzeichnung der Turtlebewegung zum nachträglichen Füllen
fillPath() verbindet die aktuelle Turtleposition mit dem Startpunkt und füllt die geschlossene Figur mit der Füllfarbe
stampTurtle() erzeugt ein Turtlebild an der aktuellen Turtleposition
stampTurtle(color) erzeugt ein Turtlebild mit angegebener Farbe an der aktuellen Turtleposition
transparent(color, alpha) gibt von der der angegebenen Farbe und dem Wert für Transparenz (zwischen 0.0 und 1.0, default: 0.5) eine transparente Farbe zurück


Callbacks

makeTurtle(mouseNNN = onMouseNNN) registriert die Callbackfunktion onMouseNNN(x, y) , die beim Mausevent aufgerufen wird. Werte für NNN: Pressed, Released, Clicked, Dragged, Moved, Entered, Exited, SingleClicked, DoubleClicked (auch mehrere, durch Komma getrennt) Speziell: Hit: Aufruf im eigenen Thread, HitX: Dasselbe, aber nachfolgende Events werden ignoriert, bis Callback zurückkehrt
makeTurtle(turtleHit = onTurtleHit) registriert die Callbackfunktion onTurtleHit(x, y), die aufgerufen wird, wenn auf das Turtlebild geklickt wird
t = Turtle(turtleHit = onTurtleHit) registriert die Callbackfunktion onTurtleHit(t, x, y), die aufgerufen wird, wenn auf das Bild der Turtle t geklickt wird

isLeftMouseButton(),
isRightMouseButton()

gibt True zurück, falls beim Event die linke bzw. rechte Maustaste verwendet wurde
makeTurtle(keyNNN = onKeyNNN) registriert die Callbackfunktion onKeyNNN(keyCode), die beim Drücken einer Tastaturtaste aufgerufen wird. Werte für NNN: Pressed, Hit: Aufruf im eigenen Thread, HitX: Dasselbe, aber nachfolgende Events ignoriert, bis Callback zurückkehrt. 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)

makeTurtle(closeClicked = onCloseClicked) registriert die Callbackfunktion onCloseClicked(), die beim Klick des Close-Buttons des Turtlefensters 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
getModifiers() liefert einen Spezialcode beim Drücken von Ctrl/Alt/Shift
getModifiersText() liefert einen Bezeichner beim Drücken von Ctrl/Alt/Shift
kbhit() liefert True, falls ein Tastendruck noch nicht mit getKey() od. getKeyCode() abgeholt ist


Texte, Bilder und Sound

(playTone() auch ohne import gturtle verfügbar)
addStatusBar(20)   fügt eine Statusbar mit der Höhe 20 Pixel hinzu
beep()   erzeugt einen Ton
playTone(freq) spielt Ton mit geg. Frequenz (in Hz) und Dauer 1000 ms (blockierende Funktion)
playTone(freq, block = False) dasselbe, aber nicht-blockierende Funktion (um mehrere Töne fast gleichzeitig abzuspielen)
playTone(freq, duration) spielt Ton mit geg. Frequenz und geg. Dauer (in ms)
playTone([f1, f2, ...]) spielt hintereinander mehrere Töne mit geg. Frequenzen und Dauer 1000 ms
playTone([(f1, d1), (f2, d2), ...]) spielt hintereinander mehrere Töne mit geg. Frequenzen und geg. Dauer
playTone([("c", 700), ("e", 1500), ...]) spielt hintereinander mehrere Töne mit geg. Tonbezeichnungen und geg. Dauer. Erlaubt sind: Grosse Oktave, ein-, zwei- und dreigestrichene Oktave, also der Bereich von C, C#,..., h'''
playTone([("c", 700), ("e", 1500), ...], instrument = "piano") wie vorher, aber mit gewähltem Instrument (piano, guitar, harp, trumpet, xylophone, organ, violin, panflute, bird, seashore, ... (gemäss MIDI-Spezifikation)
playTone([("c", 700), ("e", 1500), ...], instrument = "piano", volume = 10) wie vorher, aber mit gewählter Lautstärke (0..100)
label(param) schreibt str(param) an der aktuellen Position aus (linksbündig)
label(param1, param2, ...) konkateniert str(params) mit Leerstellen getrennt und schreibt den Text aus
label(param1, param2, ..., adjust = 'x') dasselbe, aber mit x = 'l' linksbündig (default), 'c' zentriert, 'r' rechtsbündig
printerPlot(draw) druckt die mit der Funktion draw erstellte Zeichnung
setFont(Font font) legt Schriftart fest. font ist ein Objekt der Klasse Font
Beispiel: Font("Courier New", Font.BOLD, 12).
Default: Font("SansSerif", Font.PLAIN, 24)
setFont(name) legt neue Schriftart mit bestehenden Schriftstil und Schriftgrösse fest
setFont(name, style) legt neue Schriftart und Schriftstil mit bestehender Schriftgrösse fest
style = Font.PLAIN, Font.BOLD, Font.ITALIC
setFont(name, style, size) legt neue Schriftart, Schriftstil und Schriftgrösse fest
setFontSize(size) legt neue Schriftgrösse fest (Schriftart und Stil bleiben erhalten)
getTextHeight() liefert die Höhe des Texts im aktuellen Font (in Pixels)
getTextAscent() liefert die Höhe des Text-Ascenders im aktuellen Font (in Pixels)
getTextDescent() liefert die Höhe des Text-Decenders im aktuellen Font (in Pixels)
getTextWidth(text) liefert die Breite des gegebenen Texts im aktuellen Font (in Pixels)
setStatusText("Press any key!") schreibt eine Mitteilung in die Statusbar
setTitle("Text") schreibt den Text in die Titelzeile
img = getImage(path) lädt ein Bild (im png-, gif-, jpg-Format) vom lokalen Filesystem oder von einer URL und gibt eine Referenz darauf zurück. Für path = sprites/nnn werden auch Bilder von der TigerJython-Distribution geladen (Help/Bildbibliothek zeigt die vorhandenen Bilder)
drawImage(img) stellt das Bild img an der Position der Turtle mit ihrer Blickrichtung dar
drawImage(path) lädt ein Bild (im png-, gif-, jpg-Format) vom lokalen Filesystem oder von einer URL und stellt es an der Position der Turtle mit ihrer Blickrichtung dar. Für path = sprites/nnn werden auch Bilder von der TigerJython-Distribution geladen
drawImage(path, horzMirror, vertMirror) dasselbe, aber spiegelt das Bild horizontal und/oder vertikal (boole'sche Parameter)

 

Video

rec = VideoRecorder(turtle, filename, resolution) erstellt einen MP4 (H.264/AVC) Video-Encoder, der das Turtlefenster (Turtles, Spuren und Images) aufzeichnet und in der gegebenen Datei abgespeichert. resolution muss ein String mit einer unterstützten Auflösung sein, beispielsweise "640x480". getSupportedResolutions() liefert die aktuell unterstützten Auflösungen
rec = VideoRecorder(turtleFrame, filename, resolution) dasselbe mit einem TurtleFrame
rec = VideoRecorder(turtle, filename, resolution, ulx, uly) dasselbe mit Angabe der Position der oberen linken Ecke des Turtlefensters bezüglich des Video-Bildes. Standardwerte 0, 0
rec = VideoRecorder(turtleFrame, filename, resolution, ulx, uly) dasselbe mit einem TurtleFrame
VideoRecorder.getSupportedResolutions() liefert einen String mit allen aktuell unterstützten Video-Auflösungen
rec.captureImage() nimmt ein einzelnes Bild (frame) auf. Die Aufnahme kann in beliebigen zeitlichen Abständen erfolgen. Die Bildabspielrate (frame rate) hängt von der Auflösung ab (normalerweise 25 frames / s)
rec.captureImage(nb) dasselbe, aber es werden nb gleiche Bilder aufgenommen
rec.finish() die Aufnahme wird beendet und die Videodatei geschlossen


Dialoge

msgDlg(message) öffnet einen modalen Dialog mit einem OK-Button und gegebenem Mitteilungstext
msgDlg(message, title) 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
input(prompt, False) dasselbe, aber Abbrechen/Schliessen beendet das Programm nicht, sondern gibt None zurück
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

 

Bildbearbeitung

img = getImage(filename)

gibt die Bilddatei als Image zurück (Formate: jpg, gif, bmp, png)

img = readImage(data)

gibt vom binären Datenstrom data ein Image zurück (Formate: jpg, gif, bmp, png)

imageToString(img, type)

gibt eine Stringrepresentation vom Image zurück (type = "bmp", "gif", "jpg", "png)

save(img, filename, type) schreibt Image in eine Bilddatei (type = "bmp", "gif", "jpg", "png)
imgPaste = paste(img, imgReplace, x, y)

ersetzt Teil des Bildes an der Position x, y mit einem anderen Bild. Gibt das neue Bild zurück

imgCrop = crop(img, x1, y1, x2, y2) gibt einen rechteckigen Ausschnitt des Bildes zurück
imgScale = scale(img, factor, angle) skaliert das Bild um den gegebenen Faktor und und dreht das Bild um den gegebenen Winkel (in Grad im Uhrzeigersinn). Gibt das neue Bild zurück
img = mirror(img, horzMirror, vertMirror) spiegelt das Bild horizontal und/oder vertikal (boole'sche Parameter). Gibt das neue Bild zurück
saveData(data, filename)
speichert die binären Daten in einer Datei


home