# Manuel de &kig;

## 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 pouver 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 de point, 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).

## Usage de base

### Construction d'objets

#### Construction de points

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

- Choisissez Objets Points Point normal dans le 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 objets nécessaires pour construire cet objet.

- Comme vous avez souvent besoin de construire des points, le simple fait de cliquer avec le &BCS; créera un point, 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 la section suivante.

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

#### Construction d'autres objets

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

Création d'un cercle Création d'un cercle

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

Pour choisir ces arguments, cliquez simplement sur l'objet que vous voulez utiliser. Si vous survolez un objet qui peut être utilisé pour la construction, une image préliminaire vous montrera ce à quoi l'objet ressemblera. Pour des objets nécessitant des points comme arguments, vous pouvez créer un point à la position courante de la souris et le sélectionner en cliquant sur le &BGS;.

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

Construction un cercle. Création 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 ne voulez pas ce comportement, maintenez la touche &Ctrl; appuyée en cliquant sur un objet.

- En cliquant, et déplaçant la souris (bouton appuyé), vous pouvez sélectionner les objets se trouvant dans le rectangle ainsi créé. Ceci annulera la sélection précédente. Comme dans le cas précédent, maintenir la touche &Ctrl; appuyée modifiera ce comportement.

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 à déplacer sont sélectionnés, vous pouvez les déplacer en cliquant sur le &BGS;, en le maintenant appuyé et en déplaçant la souris. Lorsque c'est fait, relâchez simplement le &BGS;.

Pour certains types d'objets (notamment les lieux compliqués), le déplacement peut être lent sur des machines anciennes. C'est malheureusement 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, l'objet suivra les déplacements de la souris. 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 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 défaire 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 le bouton approprié dans la barre d'outil, ou sélectionnez Configuration Mode plein écran.

Pour quitter le mode plein écran, cliquez avec le &BDS; dans une zone sans objets, et sélectionnez (Dés)activer le mode plein écran, ou appuyez la touche &Echap;.

## Les types d'objets de &kig;

&kig;accepte un grand nombre de types d'objets. Vous pouvez noter que tous les types d'objets disponibles ne se trouvent pas dans la barre d'outils, et qu'il existe certains 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; ce qui apparaît dans la barre d'outils est configurable. Essayez l'option Configuration Configurer les barres d'outils... si vous voulez la modifier.

## Utilisation avancée

### Menus contextuels

&kig; a des menus contextuels pour ses objets. Essayez de cliquer avec le &BDS; lorsque vous êtes sur un objet et vous verrez 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 un point sur une droite, alors que précédemment il ne l'était pas, &etc;). Ces options sont la plupart du temps simples à comprendre.

### Les menus contextuels du document

En cliquant avec le &BDS; dans le document (&cad; pas sur un objet), un menu apparaîtra, vous permettant de créer un nouvel objet, de changer le système de coordonnées utilisé, de montrer les objets cachés ou 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 de macros. Ceci vous permet de définir de nouveaux types d'objets en combinant d'autres.

Par exemple, supposez que vous vouliez réaliser une macro pour construire un cercle passant par trois points. Alors vous devrez construire trois points, quelques perpendiculaires et milieux jusqu'à ce que vous trouviez le centre, et enfin construire le cercle par le centre et un des trois points. L'image suivante devrait être plus claire.

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

Maintenant, il faut définir la macro. Sélectionnez Nouvelle macroà partir du menu Type ou actionnez 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. Finalement, 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, puis pressez le bouton Terminer. Votre macro est maintenant terminée.

Pour utiliser votre nouvelle macro, pressez 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. Une fois un objet créé, il sera enregistré par &kig; lorsque vous quitterez le programme, et sera chargé au démarrage des sessions suivantes. Vous n'avez pas à enregistrer ou charger manuellement les définitions de macro. En fait, &kig; vous permet d'en faire encore plus. Si vous sélectionnez Gérer les types à partir du menu Types, vous verrez une boîte de dialogue dans laquelle vous pourrez éditer vos types. Cette boîte de dialogue vous permet de supprimer les types qui ne sont plus utilisés, d'exporter des types vers 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 à vos constructions. C'est très utile pour indiquer des noms, des explications ou d'autres textes dans des constructions. &kig; peut aussi afficher des informations variables sur les objets (aussi appelées propriétés).

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

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

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

Vous atteignez maintenant la boîte de dialogue d'étiquettes. Saisissez ici le texte que vous voulez afficher dans la nouvelle étiquette, et actionnez le bouton Terminer. L'étiquette se trouvera alors 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. Cependant, il est aussi possible de montrer des informations variables sur les objets dans une étiquette (&pex; vous pouvez créer une étiquette avec le texte suivant Ce segment a pour longueur %1 unités. où %1 représente la longueur de ce segment).

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

L'assistant affiche maintenant le texte saisi, avec les masques remplacés par quelque chose du type argument 1. Le choix de ce qui doit être affiché est fait en cliquant d'abord sur l'argument en question. Puis, cliquez sur l'objet dont vous voulez afficher une information, puis sélectionnez une information intéressante à afficher dans le menu 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 choisiriez la propriété Longueur. Après cela, vous pouvez compléter les parties variables, ou choisir une autre propriété pour l'un des masques variables si vous désirez le modifier. Lorsque c'est fini, cliquez sur le bouton Terminer pour achever la réalisation de l'étiquette.

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

### Lieux

&kig; supporte les lieux géométriques variables. Un lieu est un concept issu des mathématiques du second degré. Brièvement, il s'agit de la figure définie par tous les points que peut occuper un certain point, lorsqu'un autre point se déplace selon une contrainte. Cela peut sembler un peu compliqué, mais en fait, ce n'est pas un concept difficile, comme le montre l'exemple suivant.

Considérez la construction géométrique suivante. Nous dessinons un cercle, et un point qui se déplace sur 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 qu'il reste sur le cercle). Ensuite, nous dessinons un segment reliant ce point et le centre du cercle, puis le milieu de ce segment.

Création d'un lieu simple Création d'un lieu simple

Si maintenant vous déplacez le point contraint sur le cercle, vous pouvez voir que le second point bouge avec lui. Si vous mettiez 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é. Nous verrons ci-dessous que c'est exactement ce qu'un lieu fait. La trajectoire que suit le second point lorsque le premier fait le tour du cercle est ce à quoi va ressembler le lieu.

La construction d'un lieu est réellement très simple. Cliquez sur le bouton Lieu dans la barre d'outils, ou choisissez Objets Autres Lieux dans la barre de menus. Puis choisissez 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 apparaîtra ensuite.

## 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 cette fonctionnalité (le programme &drgenius; de GNOME).

Les scripts en Python vous permettent basiquement de créer votre propre manière de définir un objet à 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. Vous cliqueriez alors sur le bouton Script Python dans la barre d'outils, ou choisiriez Objets Autre Script dans la barre de menus. Un assistant sera alors affiché 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 petit éditeur de texte vous sera présenté, où vous pouvez saisir le code pour votre script. Des modèles de code et des commentaires sont déjà saisis. Il est très important d'être sur 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 qui doit être définie s'appelle calc, et dans notre exemple accepte deux arguments. Ce sont les objets que nous avons sélectionnés comme arguments dans l'écran précédent. Il y aura autant d'arguments que vous en avez sélectionnés ici. Ils sont appelés `arg1` et `arg2`, mais vous pouvez modifier leurs noms pour 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 vous en avez besoin. Vous devez retourner l'objet que vous voulez voir apparaître. 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 coordonnées, puis divisons par deux le résultat. Nous construisons ensuite le 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, nous vous encourageons à 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 des points. De nombreuses autres classes et méthodes sont disponible dans le code Python de &kig;, et une référence plus complète sur elles est fournie ici.

## 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 &konqueror; sans 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; supporte les macros, 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. Dans le gestionnaire de types, vous pouvez gérer ces objets. Vous pouvez les exporter vers un fichier, les importer d'un fichier, 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. 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 le support d'autres formats de fichier est aussi prévu.

## Questions et réponses

&reporting.bugs; &updating.documentation;

## Remerciements et licence

&kig;

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

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

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

&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, C++, sur KDE / Qt, les mathématiques, la collaboration logicielle et les projets open source au cours de ce processus.

### Participez

L'objet de ce chapitre est de vous montrer les droits que la licence de &kig; vous donne en tant qu'utilisateur. Comme avec tous les logiciels libres, vous êtes autorisés (et même 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 modification à devriese@kde.org, afin que je puisse les intégrer dans les versions suivantes pour que les autres utilisateurs en profitent. Je n'ai personnellement aucun intérêt financier dans ce projet, aussi ces propos n'ont aucun but commercial.

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`, dans les 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 trouvez les icônes laides, ou que ce manuel a besoin d'une mise à jour, ou bien si vous avez une macro vraiment super que vous voudriez faire partager au 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` des sources de &kig;, et dans le chapitre Remerciements et licences de ce manuel.

&documentation.index;