# Manuel de &kig;

Dominique Devriese

    devriese@kde.org

&traducteurYvesGuillou; &traducteurCedricPasteur; &traducteurYohannHamon;
2002 2003 2004 Dominique Devriese
&FDLNotice;
2004-06-29
0.9.0

&kig; est un programme &kde; de géométrie interactive.

KDE KDE-Édu Kig Géométrie interactive KGéo Cabri Dr. Geo KSeg

## Introduction

&kig; est un programme de géométrie interactive. Il a deux objectifs :

- Permettre aux étudiants d'explorer de façon interactive des concepts et figures mathématiques en utilisant l'ordinateur.

- Servir d'outil WYSIWYG pour dessiner des figures, et les inclure dans d'autres documents.

Vous pouvez rapporter les problèmes de &kig; en utilisant l'outil de rapport de bogue. (Aide Rapport de bogue...), ou en me contactant à l'adresse devriese@kde.org.

Comme &kig; supporte les macros et les lieux, il permet de définir des macros plus complexes. Si vous êtes l'auteur d'une macro intéressante, que vous pensez utile pour d'autres, vous pouvez me la faire parvenir à devriese@kde.org pour qu'elle soit incluse dans la distribution (dans ce cas, elle suivra les termes de la licence de &kig;, la licence GPL, et ainsi d'autres personnes pourront l'utiliser et l'adapter librement).

## Utilisation de base

### Construction d'objets

#### Construction de points

Vous pouvez créer des points de plusieurs façons :

- Choisissez Objets Points Point dans la barre de menu, ou appuyez sur le bouton approprié dans la barre d'outils. Vous pourrez alors créer un point en cliquant à la position voulue dans la fenêtre.

  La méthode est la même pour construire d'autres objets : cliquez sur l'entrée désirée de la barre de menu, ou sur le bouton de la barre d'outils, et sélectionnez les éléments nécessaires pour construire l'objet.

- Comme vous avez souvent besoin de construire des points, le simple fait de cliquer avec le &BCS; créera un point pour vous, sans avoir à passer par le menu ou par un bouton.

- Vous pouvez créer des points pendant que vous créez d'autres objets, puis éventuellement les sélectionner pour les objets en cours de création. Pour plus de détails, voir .

Un point a été créé
Un point a été créé

#### Construction d'autres objets

La construction des objets autres que les points est normalement réalisé en sélectionnant l'entrée appropriée dans le menu Objets, ou en cliquant sur l'un des boutons de la barre d'outils.

Construction d'un cercle
Construction d'un cercle

Ceci commencera la création du type d'objet choisi. Tous ces types d'objets nécessitent des arguments. Par exemple, si vous choisissez de construire un cercle par centre et point, vous aurez besoin de donner deux points : un point pour le centre, et un point sur le cercle.

Ces arguments sont également des objets qui peuvent être sélectionnés en cliquant sur eux. Lorsque vous survolez un argument qui vous voulez utiliser pour construire un objet, un image préliminaire de l'objet sera montrée, ainsi vous saurez à quoi il ressemblera. Pour des objets nécessitant des points comme arguments, vous pouvez créer un nouveau point à la position courante de la souris et le sélectionner en cliquant sur le &BGS;.

Vous pouvez abandonner à tout moment la construction du nouvel objet en pressant la touche &Echap;, ou en cliquant sur le bouton Arrêt (octogone rouge dans la barre d'outils).

Construction d'un cercle.
Construction d'un cercle

### Sélection d'objets

La sélection d'objets peut être réalisée de deux façons :

- Le fait de cliquer sur un objet provoque sa sélection, et annule la sélection actuelle. Si vous voulez sélecitonner plusieurs ojets simultanément, maintenez la touche &Ctrl; appuyée tandis que vous cliquez sur un objet.

- En cliquant et en déplaçant la souris (bouton appuyé), vous pouvez sélectionner tous les objets se trouvant dans le rectangle ainsi créé. Cette action annulera la sélection courante. Comme dans le cas précédent, maintenir la touche &Ctrl; enfoncée vous permettra de conserver en plus la sélection courante.

Sélection d'objets
Sélection d'objets

### Déplacement d'objets

Pour déplacer des objets, vous devez d'abord les sélectionner

Lorsque les objets que vous voulez déplacer sont sélectionnés, vous pouvez les déplacer en cpressant sur le &BGS;, en le maintenant enfoncé et en déplaçant la souris. Lorsque vous avez fini, relâchez simplement le &BGS;.

Pour certains types d'objets (notamment lorsqu'ils sont définis par des lieux compliqués), le déplacement peut être lent sur des machines anciennes. C'est malheureux mais inévitable du fait des calculs à réaliser.

Si vous cliquez du &BDS; sur l'un des objets sélectionnés, et choisissez Déplacer, déplacer la souris déplacera l'objet. Quand l'objet se trouve à la position voulue, un nouveau clic du &BGS; arrêtera le déplacement.

### Effacement d'objets

L'effacement d'objets se fait, tout d'abord en les sélectionnant, puis en réalisant l'une des actions suivantes :

- Appuyer sur la touche Suppr du clavier.

- Appuyer sur le bouton Supprimer de la barre d'outils.

- Cliquez du &BDS; sur l'un des objets et choisissez l'option Effacer dans le menu contextuel qui apparaît.

### Montrer et cacher des objets

Dans &kig;, les objets peuvent être cachés. Ceci est réalisé en sélectionnant les objets, en cliquant avec le &BDS; sur l'un d'entre eux, et en choisissant Cacher dans le menu contextuel qui apparaît.

Pour rendre les objets à nouveau visibles, utilisez le menu Édition Rendre tout visible. Ceci rendra visibles les objets actuellement cachés.

### Défaire / Refaire

Dans &kig;, vous pouvez annuler presque toutes les modifications apportées à votre document. Utilisez simplement les boutons Annuler / Refaire de la barre d'outils, ou les raccourcis appropriés.

### Mode plein écran

&kig; a aussi un mode plein écran. Pour s'en servir, cliquez sur le bouton approprié dans la barre d'outils, ou sélectionnez Configuration Mode plein écran.

Pour quitter le mode plein écran, cliquez avec le &BDS; dans une zone où il n'y a pas d'objets, et sélectionnez (Dés)Activer le mode plein écran, ou appuyez sur la touche &Echap;.

## Les types d'objets de &kig;

&kig;accepte un grand nombre de types d'objets. Notez que tous les types d'objets disponibles ne se trouvent pas dans la barre d'outils, et qu'il existe quelques objets que vous ne pouvez construire qu'à partir du menu Objets de la barre de menu. Bien sûr, comme avec toutes les applications &kde;, le contenu de la barre d'outils est configurable. Essayez l'option Configuration Configurer les barres d'outils... si vous voulez le faire.

## Utilisation avancée

### Menus contextuels

&kig; a des menus contextuels pour ses objets. Essayez de cliquer avec le &BDS; sur un objet pour voir un menu contextuel apparaître. Il comporte de nombreuses options : pour construire d'autres objets, définir les couleurs, et aussi cacher, déplacer ou effacer des objets. Certains objets ont leurs propres options (&pex; vous pouvez contraindre certains points à être sur une droite, alors que précédemment ils ne l'étaient pas, &etc;). Ces options devraient être facile à comprendre.

### Les menus contextuels du document

Cliquer du &BDS; dans le document (&cad; pas sur un objet) fera apparaître un menu vous permettant de créer un nouvel objet, de changer le système de coordonnées utilisé, de montrer les objets cachés et même de zoomer en avant ou en arrière dans le document.

### Création de macros

Une des fonctionnalités les plus avancées de &kig; est l'utilisation des macros. Ceci vous permet de définir de nouveaux types d'objets à partir d'autres déjà définis.

Par exemple, supposez que vous vouliez réaliser une macro pour construire un cercle passant par trois points. Vous placeriez trois points et devriez construire quelques perpendiculaires et points médians jusqu'à ce que vous trouviez le centre. Ensuite vous pourriez utiliser la commande existante Cercle par centre et point (Utilisez un des trois points comme point pour cette commande). L'image suivante devrait rendre cela un peu plus claire.

Un essai de réalisation de macros
Un essai de réalisation de macros

Puis, il faut définir la macro. Sélectionnez Nouvelle macro à partir du menu Type ou cliquez sur le bouton de la barre d'outils. Un assistant apparaîtra et vous demandera de sélectionner les objets donnés. Dans notre exemple, ce sont les trois points. Sélectionnez les trois points (cliquez-les pour les sélectionner, et cliquez à nouveau pour les dé-sélectionner) puis pressez le bouton Suivant pour continuer. Pour finir, sélectionnez les derniers objets (dans notre exemple, seulement le cercle).

L'assistant macro
L'assistant macro

Une fois les étapes précédentes effectuées, pressez le bouton Suivant pour poursuivre. Saisissez un nom et éventuellement une description pour votre nouveau type d'objet, et pressez le bouton Terminer. Votre macro est maintenant terminée.

Pour utiliser votre nouvelle macro, cliquez sur son bouton dans la barre d'outils ou utilisez le menu Objets. Construire un objet macro revient alors à construire n'importe quel autre objet.

Utilisation de votre nouveau type d'objet
Utilisation de votre nouveau type d'objet

### Travailler avec les types d'objet

Comme vous l'avez vu dans le chapitre précédent, &kig; vous permet de créer vos propres objets. &kig; s'assure également qu'une fois que vous avez créé un objet, il sera enregistré lorsque vous quitterez le programme et sera chargé aux prochains démarrages. Vous n'avez pas à enregistrer ou charger manuellement les définitions de macro. En fait, &kig; vous permet d'en faire encore plus avec les macros. Si vous sélectionnez Types Gérer les types... à partir du menu, vous verrez une boîte de dialogue dans laquelle vous pourrez éditer vos types. Cette boîte de dialogue vous permet de modifier les types existant, de supprimer les types qui ne sont plus utilisés, de les exporter dans un fichier, ou même d'en charger à partir d'un autre fichier.

Boite de dialogue d'édition de types
La boîte de dialogue d'édition de types

### Étiquettes

&kig; vous permet d'ajouter des étiquettes à une construction. C'est très utile pour ajouter des noms, des explications ou d'autres textes dans des constructions. &kig; peut aussi afficher divers informations à propos des objets (aussi appelées propriétés).

Pour créer une étiquette, actionnez simplement le bouton Étiquette dans la barre d'outils de &kig; ou sélectionnez Objets Autres Étiquette dans la barre de menu.

Ensuite, vous devez choisir un emplacement pour l'étiquette. Vous pouvez soit choisir un emplacement quelconque sur l'écran, ou bien choisir de le lier à un objet.

Lier une étiquette à un cercle...
Lier une étiquette à un cercle...

Après que vous ayez sélectionné où mettre l'étiquette, la boîte de dialogue d'étiquette apparaît. Ici, vous pouvez saisir le texte que vous voulez dans la nouvelle étiquette et cliquer sur le bouton Terminer. Vous devriez maintenant voir l'étiquette dans votre document.

La boîte de dialogue d'étiquettes
La boîte de dialogue d'étiquettes

L'exemple précédent était simple, et limité à du texte uniquement. Cependant, il est aussi possible de montrer divers informations sur les objets dans une étiquette (&pex; vous pouvez créer une étiquette avec le texte Ce segment a pour longueur %1 unités. où %1 serait dynamiquement remplacé par la longueur d'un segment spécifique).

Pour faire cela, saisissez le texte en incluant un certain nombre de masques (%1, %2 &etc;). Ensuite, pressez le bouton Suivant pour continuer. Si vous voulez changer le texte ou les variables plus tard, vous pouvez revenir en arrière en utilisant le bouton Précédent.

L'assistant affiche maintenant le texte saisi, avec les masques remplacés par quelque chose du type argument 1. La sélection de la propriété associé à un argument est faite par un premier clic sur l'argument en question. Puis cliquer sur l'objet ayant une propriété dont vous avez besoin et sélectionnez la propriété elle-même dans le menu contextuel qui apparaît. Par exemple, dans l'exemple précédent, vous cliqueriez sur argument 1, puis sur le segment choisi dans la fenêtre principale de &kig; et sélectionneriez la propriété Longeur. Après quoi, vous pouvez compléter les autres parties variables, ou choisir une autre propriété pour l'une des parties variables si vous désirez la modifier. Lorsque vous êtes prêt, cliquez sur le bouton Terminer pour achever la construction de l'étiquette.

Choix d'une propriété pour un masque variable
Choix d'une propriété pour un masque variable

### Lieux

&kig; supporte l'utilisation des lieux. Un lieu est mathématiquement défini comme l'ensemble des points ou des lignes qui satisfont et sont déterminé par une condiction spécifique ; comme dans le lieu des points équidistants d'un point donné est un cercle. Regardons un exemple d'utilisation des lieux dans &kig;.

Considérez la construction géométrique suivante. Nous dessinons un cercle, et un point qui peut ce déplacer uniquement ce cercle (construisez ce point en positionnant le curseur sur un cercle, et en cliquant avec le &BCS;. Si vous essayez de déplacer ce point, vous verrez que vous ne pourrez pas le faire quitter le cercle). Ensuite, nous dessinons un segment reliant ce point et le centre du cercle, puis le point médian de ce segment.

Une construction simple utilisant un lieu
Une construction simple utilisant un lieu

Si maintenant vous déplacez le point contraint sur le cercle, vous verrez que le second point bouge avec lui. Si vous teniez un crayon sur le second point, et que vous bougiez le premier point tout autour du cercle, un nouveau cercle deux fois plus petit que le premier serait dessiné. La trajectoire que suit le second point lorsque le premier fait le tour du cercle est sont lieu.

Actuellement la construction du lieu d'un point est très facile. Cliquez sur le bouton Lieux de la barre d'outils, ou sélectionnez Objets Autres Lieux dans la barre de menu. Puis choississez le point contraint comme point mobile (le texte Point mobile apparaîtra lorsque vous le survolerez avec la souris), et l'autre comme point dépendant. Le lieu du point dépendant sera alors déssiné.

## 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 &drgeo; 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 le montrera.

Supposez que vous n'étiez pas au courant du type Milieu inclus dans &kig;, et que vous vouliez montrer le milieu de deux points donnés. Vous cliqueriez alors sur le bouton Script Python dans la barre d'outils, ou choisiriez Objets Autres Script Python dans la barre de menu. Un assistant vous sera alors présenté qui vous permettra de continuer.

L'assistant de script
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 boîte d'édition vous est alors présentée dans laquelle vous pouvez saisier le code pour votre objet script. Un modèl de code et des commentaires sont déjà présents. Il est important d'être sûr que votre code est bien du code Python valable. Les personnes familières avec Python noteront que nous définissons actuellement une fonction Python appelée `calc`. Il est en conséquence nécessaire d'utiliser les règles de définition d'une fonction Python. Par exemple, chaque ligne de la fonction devra commencer par une Tabulation. La première ligne ne commençant pas par une Tabulation termine 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
Saisie du code pour le milieu dans l'assistant de script.

Si vous cliquez maintenant sur le bouton Terminer, le nouvel objet apparaîtra 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.

Un script a été créé
Le script nouvellement créé.

Tous les objets dans &kig; peuvent être utilisés dans le code Python. Comme nous l'avons vu précédemment, les points sont de la classe Point, et vous pouvez utiliser &pex; la méthode `Point.coordinate()`. Vous pouvez aussi retourner toutes sortes d'objets, pas seulement un Point. Beaucoup plus de classes et de méthodes sont disponibles dans le code Phyton pour &kig;, et une référence plus complète est fourni sur le site internet de &kig;.

## Fonctionnalités de &kig;

- &kig; est un programme open source. Cela signifie que vous êtes libre de l'utiliser et de le modifier comme bon vous semble. Redistribuer &kig; est sujet à quelques restrictions, entre autres que tout le monde dispose des mêmes droits d'utiliser une version de &kig; incluant vos modifications, comme vous et moi.

  Les logiciels libres sont développés dans un esprit très ouvert ; et leurs développeurs sont habituellement très à l'écoute des suggestions des utilisateurs. Ainsi, si vous avez des questions, des critiques ou quoi que ce soit d'autre à propos de &kig;, informez-en l'auteur à l'adresse devriese@kde.org.

- &kig; est un programme KPart, ce qui signifie que vous pouvez l'inclure dans d'autres logiciels &kde;. Si vous ouvrez un fichier `.kig` dans &konqueror;, il pourra être ouvert directement dans la fenêtre de &konqueror; sans avoir besoin d'ouvrir une autre application.

- Travailler avec &kig; est très aisé. La construction d'objets est facile et interactive, avec prévisualisation des résultats, &etc; Déplacer, sélectionner et construire, tout est accessible de la façon attendue. La fonction défaire est, elle aussi, intuitive.

- &kig; permet que les macros soit définies simplement. Ces objets sont présentés à l'utilisateur comme des objets classiques. Ils sont enregistrés en fin de session et chargés au démarrage de l'application, ainsi ils ne sont pas perdus d'une session à l'autre. Vous pouvez gerer ces ojets dans la boîte de dialogue Gérer les types de macro (voir ). Vous pouvez les exporter vers un fichier, les importer depuis un fichier, les éditer et les effacer.

- &kig; enregistre ses données dans un format &XML; lisible.

- &kig; gère la construction de lieux.

- &kig; vous permet d'exporter un fichier &kig; vers quelques formats intéressants, comme des fichiers images et des fichiers XFig et LaTeX et des images vectorielles SVG. Ceci est plutôt utile, car tous les programmes ne gèrent pas encore le format de fichier de &kig;.

- &kig; a un système de transformation très flexible.

- &kig; veut être compatible avec ses concurrents. C'est pourquoi il gère le format de fichier de &kgeo;, le format de fichier de &kseg; et partiellement les formats &drgeo; et &cabri; ; de plus, le support d'autres formats de fichier est prévu.

## Questions et réponses

&reporting.bugs; &updating.documentation;

## Remerciements et licence

&kig;

&kig; copyright 2002-2004 Dominique Devriese devriese@kde.org

Documentation copyright 2002-2004 Dominique Devriese. devriese@kde.org

Relecture par &Philip.Rodrigues; &Philip.Rodrigues.mail;

Traduction française par &YvesGuillou;, &CedricPasteur; et &YohannHamon;

&underFDL; &underGPL;

## Installation

### Comment obtenir &kig;

&install.intro.documentation;

### Compilation et Installation

&install.compile.documentation;

## Participez

### Programme libre

&kig; est un Logiciel libre. Cela signifie que son code source est disponible sur Internet, et que tout le monde peut l'utiliser, le lire, le modifier et le distribuer. Je travaille sur ce projet pendant mes loisirs, et j'ai déjà appris beaucoup sur la programmation, le C++, &kde; / &Qt;, les mathématiques, la collaboration logicielle et les projets open source au cours de ce processus.

### Participez

Dans ce chapitre, je veux vous montrer, à vous les utilisateurs, les droits que la licence de &kig; vous donne. Comme avec tout les logiciels libres, vous êtes autorisés (et encouragés) à résoudre les problèmes que vous rencontrez lors de son utilisation, à ajouter des fonctionnalités qui vous font défaut, à distribuer votre programme modifié et à m'envoyer ces modifications à devriese@kde.org, afin que je puisse les intégrer dans les versions suivantes pour que les autres utilisateurs en profitent. Notez que je n'ai personnellement aucun interêt financier quel qu'il soit dans ce projet.

Si vous doutez de vos droits concernant l'utilisation de ce logiciel, ou de l'utilisation par des tierces personnes des modifications que vous avez faites au programme, &etc;, veuillez lire la licence. Vous pouvez la trouver dans le fichier `COPYING` situé dans l'arborescence des fichiers sources de &kig; ou dans l'onglet licence de la boîte de dialogue À propos de Kig.

### Comment contribuer ?

Toutes les contributions sont les bienvenues. Si vous n'aimez pas les icônes, ou que vous pensez que ce manuel a besoin d'une mise à jour, ou bien si vous avez une macro vraiment super que vous voudriez partager avec le monde entier, n'hésitez pas à me les envoyer. Notez simplement que vos contributions seront distribuées selon les termes de la licence &GNU; GPL ; vous pouvez trouver les termes de cette licence dans le fichier `COPYING` situé dans l'arborescence des fichiers sources de &kig;, et dans le chapitre Remerciements et licences de ce manuel.

&documentation.index;