Kig
Kig (pour KDE interactive geometry) est un logiciel de géométrie dynamique tournant sous environnement KDE. Spécialisé dans la géométrie supérieure, il possède un langage de script, Python, qui lui permet de construire des figures d'une complexité remarquable.
Développé par | Devriese, Paolini, Toscano, Pasquarelli, Gatti, Gajdos |
---|---|
Dernière version | 22.12.0 ()[1] - [2] |
Dépôt | invent.kde.org/education/kig |
Écrit en | C++ |
Interface | Qt |
Système d'exploitation | Type Unix |
Environnement | KDE |
Type | Logiciel de géométrie dynamique (d) |
Licence | Licence publique générale GNU version 2 |
Documentation | docs.kde.org/stable/en/kdeedu/kig |
Site web | http://edu.kde.org/kig/ |
Plateforme
Kig fait intégralement partie du projet Kde-Edu, un paquet de logiciels consacrés à l'éducation qui tourne sous KDE.
Formats de fichiers
Outre son propre format de fichier (extension "kig") qui est une description de la figure au format xml, Kig est capable d'exporter en svg ou en LaTeX, et d'importer en partie les figures aux formats DrGeo et Cabri Géomètre.
Objets
Pour construire trois points par exemple, on doit sélectionner trois fois de suite l'outil point, Kig ne gardant pas en mémoire l'outil sélectionné.
Une fois construits, les objets sont déplaçables avec la souris, et on peut modifier leur couleur et leur taille après leur construction.
Parmi les objets qu'on peut construire avec Kig, il y a
- Le centre de courbure et cercle osculateurs
- Les similitude, affinité, inversion et application projective, l'homologie harmonique
- L'hyperbole de foyers donnés
- L'ellipse de foyers donnés
- L'hyperbole d'asymptotes données, passant par un point donné
- La courbe de Bézier de degré 2 et 3
- La polaire d'un point et le pôle d'une droite par rapport à une conique
- La directrice et les axes radicaux d'une conique, les asymptotes d'une hyperbole, l'hyperbole d'asymptotes données.
- La courbe cubique par 9 points
- La cubique nodale par 6 points
- La cubique cuspidale par 4 points
Scripts Python
Dans la figure
Pour ajouter à la palette d'outils de Kig, un script en Python (langage), il est nécessaire de le convertir en macro.
Par exemple, si on souhaite créer une fonction carré, on incorpore à la figure un objet de type nombre (par exemple 3) et on clique sur ce nombre lorsqu'on crée un objet de type script Python. Le script a alors une donnée d'entrée nommée arg1 et le script peut être le suivant :
def square( arg1 ):
return DoubleObject( arg1.value()**2 )
L'antécédent de la fonction est la valeur de l'argument arg1; on l'élève au carré et on retourne le résultat.
Dans la figure, le nombre 9 apparaît (en effet ) et pour avoir un objet utilisable en Kig, il reste à créer une macro en sélectionnant le 3 comme objet initial et le 9 comme objet final. Un nouvel outil apparaît alors dans la palette de Kig. La manipulation est à comparer avec la version DrGeo.
Les objets considérés ne sont pas nécessairement numériques: Si au moment de la création du script, on désigne un point comme argument (en cliquant dessus), arg1 sera un point et plus un nombre. On peut alors lui appliquer le script suivant :
def csquare( arg1 ):
x=arg1.coordinate().x
y=arg1.coordinate().y
z=x*x-y*y
y=2*x*y
x=z
return Point( Coordinate(x,y) )
Ce script crée un point qui est l'image du précédent par la transformation . Cette transformation, comme le suggère son nom, est la fonction carré dans . En effet, . Après cela, on peut créer une macro ayant pour objet le point initial (d'affixe ) et pour objet final, le point construit par le script (d'affixe ). La manipulation est à comparer avec la version DrGeo.
Cette méthode enrichit Kig mais seul un objet peut être retourné. Pour construire une figure complexe en Python, il faut utiliser un programme appelé pykig.py et fourni avec Kig.
Avec pykig
Le script doit être écrit avec un éditeur de texte externe (après avoir quitté Kig) et lancé en ligne de commande avec pykig.py LeScript.kpy
(s'il a été enregistré sous le nom LeScript.kpy). S'il n'y a pas d'erreur de syntaxe, l'exécution du script a pour effet de lancer Kig avec la figure telle qu'elle a été construite.
Par exemple, pour construire le triangle de Sierpinski dynamique, le script est le suivant :
from random import *
kigdocument.hideobjects()
A=Point(0,2)
A.show()
B=Point(-2,-1)
B.show()
C=Point(2,-1)
C.show()
M=Point(.1,.1)
for i in range(1,1000):
d=randrange(3)
if d==0:
s=Segment(A,M)
M=s.midpoint()
if d==1:
s=Segment(B,M)
M=s.midpoint()
if d==2:
s=Segment(C,M)
M=s.midpoint()
M.show()
Cette version est à comparer avec la version CarScript, avec la version DrGeoII et avec la version (récursive) de DrGeo.
Notes et références
- « Releases 22.12.0 2022-12-08 » (consulté le )
- « release/22.12 » (consulté le )