Skripting in GeoGebra
Skripts sind Folgen von Befehlen, die nacheinander ausgeführt werden.
GeoGebra unterstützt zwei Skriptsprachen - GGBScript und JavaScript. Du kannst Skripts im Skripting Tab des Eigenschaften-Dialogs des Objekts, welches du mit einem Skript versehen möchtest, hinzufügen und verändern.
Anmerkung: Die Objekteigenschaften müssen wieder geschlossen sein, damit Skripts funktionieren.
Verschiedene Objekte können mit verschiedenen Skripttypen ausgestattet werden; das Ausführen von Skripts kann ausgelöst werden durch:
- klicken auf ein bestimmtes Objekt (beiMausklick-Tab)
- aktualisieren eines bestimmten Objekts, wenn Werte oder Objekteinstellungen verändert werden (beiUpdate-Tab)
- verändern des Inhalts eines Eingabefelds (beiÄnderung-Tab)
- beim Loslassen des Mausklicks (oder wenn sich der Finger vom Touchscreen löst), nachdem ein Objekt verschoben wurde (beiZieh-Ende-Tab)
- laden der Datei (für JavaScript - GlobalesJavaScript-Tab)
- Javascript listeners (siehe Reference:JavaScript)
- Finde mehr in der Demo der beiÄnderung und beiUpdate Skripts für ein Eingabefeld.
- Sieh dir die Demo des beiZieh-Ende Skripting für bewegliche Punkte an.
GGBScript
Du kannst Skripts aus GeoGebra Befehlen erstellen, die du sonst auch in der Eingabezeile verwenden würdest. Nachdem das Skript ausgelöst wird, werden alle Befehle in der Reihenfolge, in der sie geschrieben wurden, ausgeführt.
Beispiel:
- ist ein ganzzahliger Schieberegler mit Werten von bis (die Schrittlänge ist somit )
- gib ein:
liste1 = {"rot", "grün", "blau"}
- in den Objekteinstellungen von , setze das "On Update" Skript to
SetzeFarbe(a, Element(liste1, a))
- indem du den Schieberegler bewegst, veränderst du somit die Farbe des Objekts
JavaScript
JavaScript ist eine Programmiersprache, die von vielen Internettechnologien verwended wird. Anders als bei GeoGebra Script werden Befehle in JavaScript nicht als eine einfache Folge ausgeführt, man kann sie auch mit control flow Aussagen (
Dieses Skript erstellt 10 Punkte bis mit beliebigen Koordinaten.
Hinweis: Skripting mit JavaScript ist sehr vielseitig, deswegen lohnt es sich oft, mit den viel einfacheren GeoGebra Skripts auszukommen.
if
, while
, for
) verwenden. Finde mehr dazu in einem der Tutorials auf developer.mozilla.org. In GeoGebra kannst du spezielle JavaScript Methoden anwenden, um deine Konstruktion zu verändern. Diese gehören zu ggbApplet Objekten, also kannst du sie als ggbApplet.method_name(parameter,..,parameter)
bezeichnen. Eine komplette Liste der Methoden findest du auf Reference:JavaScript.
Beispiel:
for(var i =0;i<10;i++)
ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");
Global JavaScript
Im Reiter Globales JavaScript in den Einstellungen kannst du Funktionen (keine Variablen) definieren, die für alle anderen Skripts verfügbar sind. Du kannst auch die Funktion function ggbOnInit(name, api) definieren, die automatisch ausgeführt wird, wenn die Konstruktion lädt. Die ggbOnInit Funktion kann genutzt werden, um listeners einzuführen, wie im Beispiel unten.
Beispiel:
function onAdd(name){
alert("Object "+name+" was added.");
}
function ggbOnInit(name, api){
api.registerAddListener("onAdd");
}
Zuerst wurde die Funktion onAdd definiert, die eine Nachricht basierend auf einem gegebenen String ausgibt. Danach wurde GeoGebra mithilfe der Funktion ggbOnInit mitgeteilt, dass diese Funktion aufgerufen werden soll, sobald ein neues Objekt hinzugefügt wird. Sobald die Konstruktion neu geladen wird, wird die Funktion ggbOnInit aufgerufen und ab diesem Zeitpunkt erscheint die Nachricht "Objekt A wurde hinzugefügt", wenn ein Benutzer einen Punkt mit dem Namen z. B. hinzufügt.
Du kannst listeners für Aktionen wie Umbenennen, Löschen oder Lösche Konstruktion verwenden. Eine komplette Liste findest du in Reference:JavaScript.
Hinweis: Die Verwendung von ggbApplet-Methoden im Globalen JavaScript außerhalb von ggbOnInit funktioniert nicht wie beabsichtigt, da sie aufgerufen werden, bevor die Konstruktion geladen ist.