Chapitre 5. Utilisation de script

Kig permet à l'utilisateur de créer des types personnalisés dans le langage de script Python. Ceci est une fonctionnalité très avancée, et je ne connais qu'un seul autre programme de géométrie interactive ayant une fonctionnalité similaire (le programme Dr.Geo de GNOME).

Les scripts en Python vous permettent typiquement de créer vos propres objets à partir de certains objets parents. Par exemple, si vous êtes un professeur de mathématiques, et que vous avez une manière originale de calculer un point intéressant d'une conique, alors au lieu de vous embêter avec des constructions complexes et des macros, vous pourriez simplement écrire en code Python la manière dont le point est calculé et Kig vous l'affichera.

Supposez que vous n'étiez pas au courant du type intégré à Kig, « Mid Point » et que vous vouliez afficher le milieu de deux points donnés. Vous cliqueriez alors sur le bouton Python Script dans la barre d'outils, ou vous sélectionneriez Objets → Autres → Script en Python dans la barre de menus. Un assistant vous sera alors présenté vous permettant de continuer.

L'assistant de script

La première chose que vous devez faire est choisir les arguments de votre script. Dans notre exemple, il s'agit des deux points dont nous voulons afficher le milieu. Choisissez les dans la fenêtre principale de Kig, et cliquez sur Suivant pour continuer.

Un petite boite d'édition vous est alors présentée dans laquelle vous pouvez saisir le code pour votre objet de script. Un modèle de code et quelques commentaires y sont déjà présents. Il est important de s'assurer que votre code est bien du code valable en Python. Les personnes familières avec Python remarqueront que nous définissons actuellement une fonction en Python appelée calc. Il est en conséquence nécessaire d'utiliser les règles de définition d'une fonction en Python. Par exemple, chaque ligne de la fonction devra commencer par un caractère de Tabulation. La première ligne ne commençant pas par une Tabulation indique la fin de la définition de la fonction.

La fonction Python que nous voulons définir est appelée calc, et dans notre cas elle accepte deux arguments. Ce sont les objets que vous avez sélectionné comme arguments dans l'écran précédent. Vous avez besoin d'autant d'arguments que vous en avez ici. Ils sont appelés arg1 et arg2, mais vous pouvez modifier leurs noms en quelque chose ayant plus de sens si vous le voulez.

Dans la fonction, vous pouvez faire toutes sortes de calculs que vous jugez nécessaire, en utilisant les deux arguments si besoin. Vous devez retourner l'objet que vous voulez définir. Dans notre cas, c'est un objet Point. Les deux arguments sont aussi des objets Point, et nous pouvons utiliser la fonction Point.coordinate() pour obtenir les coordonnées des deux points.

Le calcul nécessaire dans notre exemple est très simple, nous additionnons simplement les deux ensembles de coordonnées, puis divisons par deux le résultat. Nous construisons alors un nouveau point utilisant ces coordonnées. Le code Python nécessaire est :

def calc( a, b ):
  m = ( a.coordinate() + b.coordinate() ) / 2;
  return Point( m )
Saisie du code pour le milieu dans l'assistant de script.

Si vous cliquez maintenant sur le bouton Terminer, le nouvel objet apparaitra dans le document Kig. Si vous déplacez un des points, alors le point nouvellement créé l'accompagnera. Des objets bien plus puissant peuvent être construits de cette manière, vous êtes encouragés à essayer.

Le script nouvellement créé.

La totalité des objets de Kig peuvent être utilisés dans du code Python. Comme nous l'avons vu précédemment, les points sont de la classe Point. Vous pouvez utiliser par exemple la méthode Point.coordinate(). Vous pouvez aussi retourner toutes sortes d'objets, pas seulement un objet de type Point. Beaucoup d'autres classes et de méthodes sont disponibles dans le code en Python pour Kig. Une référence plus complète est fournie sur le site Internet de Kig.