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 in der Werkzeugleiste oder wählen → → in der Menüleiste. Es wird nun ein Assistent angezeigt, der Sie durch den Prozess begleitet.
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 .
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 )
Drücken Sie nun den Knopf , 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.
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.