Kapitel 5. Skripte

Kig bietet die Möglichkeit, eigene Objekte in der Skript-Sprache Python zu definieren. Das ist eine sehr fortgeschrittene Funktion und ich kenne nur noch ein anderes Programm für interaktive Geometrie mit dieser Funktion (das GNOME-Programm Dr.Geo).

Mit Python-Skripten in Kig können Sie eigene Objekte aus vorhandenen Objekten erstellen. So können Sie z. B. einen bestimmten Punkt eines Kegels berechnen wollen. Anstatt nun mit komplexen Konstruktionen und Makros zu hantieren, können Sie die Rechenvorschrift einfach in der Sprache Python aufschreiben und Kig wird den Punkt entsprechend darstellen.

Nehmen wir an, Ihnen ist das in Kig vorhandene Objekt Mittelpunkt nicht bekannt und Sie wollen den Mittelpunkt zwischen zwei vorgegebenen Punkten konstruieren. Dazu klicken Sie auf den Knopf Python-Skript in der Werkzeugleiste oder wählen ObjekteSonstigePython-Skript in der Menüleiste. Es wird nun ein Assistent angezeigt, der Sie durch den Prozess begleitet.

Der Skriptobjekt Assistent

Zuerst müssen Sie die Argumente des Skriptobjektes wählen. In unserem Beispiel sind das die zwei Punkte, zwischen denen wir den Mittelpunkt anzeigen wollen. Diese wählen Sie im Hauptfenster von Kig aus und bestätigen mit einem Klick auf den Knopf Weiter.

Jetzt wird ein Texteingabefeld angezeigt, in das Sie den Quelltext für das Skriptobjekt eingeben können. Ein Quelltextgerüst und einige Kommentare sind bereits vorhanden. Es ist wichtig sicher zu stellen, dass Sie korrekten Python-Quelltext eingeben. Benutzer, die mit Python vertraut sind, werden bemerken, dass wir eine Funktion calc definieren. Halten Sie sich an die Python-Regeln zur Definition einer Funktion. So muss jede Zeile der Funktion mit einem Tab eingerückt werden. Die erste Zeile ohne Tab am Zeilenanfang beendet die Funktionsdefinition.

Die Python-Funktion, die wir definieren wollen, heißt calc und verarbeitet in unserem Beispiel zwei Argumente. Das sind die im vorherigen Schritt ausgewählten Objekte. Die Anzahl der Argumente muss immer mit der Anzahl der gewählten Objekte übereinstimmen. Die Argumente heißen arg1 und arg2, aber Sie können natürlich die Namen ändern.

In der Funktion können Sie alle Arten von Berechnungen mit den Argumenten durchführen, die nötig sind. Sie müssen das Objekt zurückgeben, dass Sie definieren wollen. In diesem Fall ist es ein Point-Objekt. Die beiden Argumente sind ebenfalls Point-Objekte und Sie können die Funktion Point.coordinate() nutzen, um die Koordinaten der angegebenen Punkte zu verarbeiten.

In diesem Beispiel ist die notwendige Berechnung sehr einfach. Addieren Sie die beiden Koordinatenpaare und teilen Sie das Ergebnis durch 2. Mit diesen neuen Koordinaten erstellen Sie ein neues Point-Objekt. Der dazu notwendige Python-Quelltext lautet:

def calc( a, b ):
    m = ( a.coordinate() + b.coordinate() ) / 2;
    return Point( m )
Quelltext für den Mittelpunkt im Skriptobjekt Assistent eingeben

Drücken Sie nun den Knopf Fertigstellen, wird das neue Objekt im Arbeitsbereich von Kig angezeigt. Bewegen Sie einen der Punkte, dann bewegt sich der neu erstellte Punkt entsprechend mit. Sie können natürlich weitaus komplexere Objekte erstellen, probieren Sie es einfach aus.

Das neu erstellte Skriptobjekt

Alle Kig Objekte können im Python-Quelltext benutzt werden. Wie weiter oben gezeigt wurde, gehören Punkte zur Point-Klasse und Sie können z. B. die Koordinaten über die Funktion Point.coordinate() ermitteln. Sie können alle Arten von Objekten zurückgeben, nicht nur Point-Objekte. Viele weitere Klassen und Funktionen stehen in Kig im Python-Quelltext zur Verfügung, eine vollständigere Referenz finden Sie hier.