<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kseg "<application
>KSeg</application
>">
  <!ENTITY cabri "<application
>Cabri</application
>">
  <!ENTITY drgenius "<application
>Dr.Genius</application
>">
  <!ENTITY package "kdeedu">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % French "INCLUDE">
  <!-- change language only here -->
]
>

<book lang="&language;">

  <bookinfo>
    <title
>Manuel de &kig;</title>

    <authorgroup>
      <author
><firstname
>Dominique</firstname
> <surname
>Devriese</surname
> <affiliation
> <address
><email
>devriese@kde.org</email
></address>
	</affiliation>
      </author>
    &traducteurYvesGuillou; &traducteurCedricPasteur; 
    </authorgroup>


    <copyright>
      <year
>2002</year
><year
>2003</year
> <holder
>Dominique Devriese</holder>
    </copyright>

    <legalnotice
>&FDLNotice;</legalnotice>

    <date
>2003-07-27</date
> <releaseinfo
>0.6.0</releaseinfo>
    
    <abstract>
      <para
>&kig; est un programme &kde; de géométrie interactive. </para>
    </abstract>

    <keywordset>
      <keyword
>KDE</keyword
> <keyword
>KDE-Édu</keyword>
      <keyword
>Kig</keyword
> <keyword
>Géométrie interactive</keyword>
      <keyword
>KGéo</keyword
> <keyword
>Cabri</keyword>
    </keywordset>
  </bookinfo>

  <chapter id="introduction">
    <title
>Introduction</title>

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

    <itemizedlist>
      <listitem
><para
>Permettre aux étudiants d'explorer de façon interactive des concepts et figures mathématiques en utilisant l'ordinateur. </para
></listitem>

      <listitem
><para
>Servir d'outil <acronym
>WYSIWYG</acronym
> pour dessiner des figures, et les inclure dans d'autres documents.</para
></listitem>
    </itemizedlist>

    <para
>Vous pouver rapporter les problèmes de &kig; en utilisant l'outil de rapport de bogue. (<menuchoice
><guimenu
>Aide</guimenu
><guimenuitem
>Rapport de bogue</guimenuitem
></menuchoice
>), ou en me contactant à l'adresse <email
>devriese@kde.org</email
>. </para>
    <para
>Comme &kig; gère les macros et les lieux de points, 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 à <email
>devriese@kde.org</email
> pour qu'elle soit incluse dans la distribution (dans ce cas, elle suivra les termes de la licence de &kig;, la licence <ulink url="http://www.gnu.org/licenses/licenses.html#GPL"
>GPL</ulink
>, et ainsi d'autres personnes pourront l'utiliser et l'adapter librement). </para>
  </chapter>

  <chapter id="using-kig-basic">
    <title
>Usage de base</title>
    <section id="constructing-objects">
      <title
>Construction d'objets</title>
      <section id="constructing-points">
	<title
>Construction de points</title>
	<para
>Vous pouvez créer des points de plusieurs façons :</para>
	  <itemizedlist>
	    <listitem>
	      <para
>Choisissez <menuchoice
><guimenu
>Objets</guimenu
> <guisubmenu
>Points</guisubmenu
><guimenuitem
> Point normal</guimenuitem
></menuchoice
> 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.</para
>  <note
><para
>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.</para
></note>
	    </listitem>
	    <listitem>
	      <para
>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. </para>
	    </listitem>
	    <listitem>
	      <para
>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 <link linkend="constructing-other-objects"
>section suivante</link
>. </para>
	    </listitem>
	  </itemizedlist>

	<screenshot>
	  <screeninfo
>Un point a été créé</screeninfo>
	  <mediaobject>
	    <imageobject>
	      <imagedata fileref="constructed_a_point.png"
	      format="PNG"/>
	    </imageobject>
	    <textobject>
	      <phrase
>Un point a été créé</phrase>
	    </textobject>
	  </mediaobject>
	</screenshot>
      </section>

      <section id="constructing-other-objects">
	<title
>Construction d'autres objets</title>
	<para
>Construire des objets autres que les points est normalement réalisé en choisissant l'entrée appropriée dans le menu <guimenu
>Objets</guimenu
>, ou en cliquant sur l'un des boutons de la barre d'outils. </para>
	<screenshot>
	  <screeninfo
>Création d'un cercle</screeninfo>
	  <mediaobject>
	    <imageobject>
	      <imagedata fileref="constructing_a_circle.png"
	      format="PNG"/>
	    </imageobject>
	    <textobject>
	      <phrase
>Création d'un cercle</phrase>
	    </textobject>
	  </mediaobject>
	</screenshot>
	<para
>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 pour le point sur le cercle. </para>
	<para
>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;. </para>
	<para
>Vous pouvez abandonner à tout moment la construction de l'objet en actionnant la touche &Echap;, ou en cliquant sur le bouton <guiicon
>Stop</guiicon
> (octogone rouge dans la barre d'outils). </para>
	<screenshot>
	  <screeninfo
>Construction d'un cercle.</screeninfo>
	  <mediaobject>
	    <imageobject>
	      <imagedata fileref="constructing_a_circle_2.png"
	      format="PNG"/>
	    </imageobject>
	    <textobject>
	      <phrase
>Création d'un cercle</phrase>
	    </textobject>
	  </mediaobject>
	</screenshot>
      </section>
    </section>

    <section id="selecting-objects">
      <title
>Sélection d'objets</title>
      <para
>La sélection d'objets peut être réalisée de deux façons : </para>
      <itemizedlist>
	<listitem>
	  <para
>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. </para>
	</listitem>
	<listitem>
	  <para
>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. </para>
	</listitem>
      </itemizedlist>

      <screenshot>
	<screeninfo
>Sélection d'objets</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="selecting_objects.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Sélection d'objets</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
    </section>

    <section id="moving-objects">
      <title
>Déplacement d'objets</title>
      <para
>Pour déplacer des objets, vous devez d'abord les <link linkend="selecting-objects"
>sélectionner</link
>. </para>
      <para
>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;. </para>
      <note
><para
>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. </para
></note
> <note
><para
>Si vous cliquez du &BDS; sur l'un des objets sélectionnés, et choisissez <menuchoice
><guimenuitem
>Déplacer</guimenuitem
></menuchoice
>, 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. </para
></note>
    </section>
    <section id="deleting-objects">
      <title
>Effacement d'objets</title>
      <para
>L'effacement d'objets se fait, tout d'abord en les <link linkend="selecting-objects"
>sélectionnant</link
>, puis en réalisant l'une des actions suivantes : <itemizedlist>
	  <listitem>
	    <para
>Appuyer sur la touche <keycap
>Suppr</keycap
> du clavier. </para>
	  </listitem>
	  <listitem>
	    <para
>Appuyer sur le bouton <guiicon
>Supprimer</guiicon
> de la barre d'outils. </para>
	  </listitem>
	  <listitem>
	    <para
>Cliquez du &BDS; sur l'un des objets et choisissez l'option <menuchoice
><guimenuitem
>Effacer</guimenuitem
></menuchoice
> dans le <link linkend="objects-context-menus"
>menu contextuel</link
> qui apparaît. </para>
	  </listitem>
	</itemizedlist>
      </para>
    </section>
    <section id="showing-hiding-objects">
      <title
>Montrer et cacher des objets</title>
      <para
>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 <menuchoice
><guimenuitem
>Cacher</guimenuitem
></menuchoice
> dans le <link linkend="objects-context-menus"
>menu contextuel</link
> qui apparaît. </para>
      <para
>Pour rendre les objets à nouveau visibles, utilisez le menu <menuchoice
><guimenu
>Édition</guimenu
><guimenuitem
>Rendre tout visible...</guimenuitem
></menuchoice
>. Ceci rendra visibles les objets actuellement cachés. </para>
    </section>
    <section id="undo-redo">
      <title
>Défaire / Refaire</title>
      <para
>Dans &kig;, vous pouvez défaire presque toutes les modifications apportées à votre document. Utilisez simplement les boutons <guiicon
>Annuler</guiicon
>/<guiicon
>Refaire</guiicon
> de la barre d'outils, ou les raccourcis appropriés. </para>
    </section>
    <section id="full-screen-mode">
      <title
>Mode plein écran</title>
      <para
>&kig; a aussi un mode plein écran. Pour s'en servir, cliquez le bouton approprié dans la barre d'outil, ou sélectionnez <menuchoice
><guimenu
>Configuration</guimenu
><guimenuitem
>Mode plein écran</guimenuitem
></menuchoice
>. </para>
      <para
>Pour quitter le mode plein écran, cliquez avec le &BDS; dans une zone sans objets, et sélectionnez <menuchoice
><guimenuitem
>(Dés)activer le mode plein écran</guimenuitem
> </menuchoice
>, ou appuyez la touche <keycap
>Échap</keycap
>. </para>
    </section>
  </chapter>

  <chapter id="kig-object-types">
    <title
>Les types d'objets de &kig;</title>
    <para
>&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 <guimenu
>Objets</guimenu
> 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 <menuchoice
><guimenu
>Configuration</guimenu
><guimenuitem
>Configurer les barres d'outils...</guimenuitem
></menuchoice
> si vous voulez la modifier. </para>
  </chapter>

  <chapter id="using-advanced">
    <title
>Utilisation avancée</title>
    <section id="objects-context-menus">
      <title
>Menus contextuels</title>
      <para
>&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. </para>
    </section>
    <section id="document-context-menus">
      <title
>Les menus contextuels du document</title>
      <para
>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. </para>
    </section>
    <section id="defining-macros">
      <title
>Création de macros</title>
      <para
>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. </para>
      <para
>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. </para>
      <screenshot>
	<screeninfo
>Un essai de réalisation de macros</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="test_run_macro.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Un essai de réalisation de macros</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>

      <para
>Maintenant, il faut définir la macro. Sélectionnez <guimenuitem
>Nouvelle macro</guimenuitem
>à partir du menu <guimenu
>Type</guimenu
> 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 actionnez le bouton <guibutton
>Suivant</guibutton
> pour continuer. Finalement, sélectionnez les derniers objets (dans notre exemple, seulement le cercle). </para>

      <screenshot>
	<screeninfo
>L'assistant macro</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="macro_wizard.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>L'assistant macro</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>

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

      <para
>Pour utiliser votre nouvelle macro, actionnez son bouton dans la barre d'outils ou utilisez le menu <guimenu
>Objets</guimenu
>. Construire un objet macro revient alors à construire n'importe quel autre objet. </para>
      <screenshot>
	<screeninfo
>Utilisation de votre nouveau type d'objet</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="macros_at_work.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Utilisation de votre nouveau type d'objet</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
    </section>
    <section id="working-with-types">
      <title
>Travailler avec les types d'objet</title>
      <para
>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 <guimenuitem
>Gérer les types</guimenuitem
> à partir du menu <guimenu
>Types</guimenu
>, 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. </para>
      <screenshot>
	<screeninfo
>Boite de dialogue d'édition de types</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="edit_types_dialog.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>La boîte de dialogue d'édition de types</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
    </section>
    <section id="text-labels">
      <title
>Étiquettes</title>
      <para
>&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 <quote
>propriétés</quote
>). </para>
      <para
>Pour créer une étiquette, actionnez simplement le bouton Étiquette dans la barre d'outil de &kig;, ou sélectionnez <menuchoice
><guimenu
> Objets</guimenu
><guisubmenu
>Autres</guisubmenu
><guimenuitem
>Étiquette</guimenuitem
></menuchoice
> dans la barre de menu. </para>
      <para
>Ensuite, vous devez choisir l'emplacement de votre étiquette. Vous pouvez ou bien choisir un emplacement quelconque sur l'écran, ou bien choisir de le <quote
>lier</quote
> à un autre objet. </para>
      <screenshot>
	<screeninfo
>Lier une étiquette à un cercle...</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="text_label_attaching.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Lier une étiquette à un cercle...</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
      <para
>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 <guibutton
>Terminer</guibutton
>. L'étiquette se trouvera alors dans votre document. </para>
      <screenshot>
	<screeninfo
>La boîte de dialogue d'étiquettes</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="text_label_wizard.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>La boîte de dialogue d'étiquettes</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
      <para
>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 <quote
>Ce segment a pour longueur %1 unités.</quote
> où <token
>%1</token
> représente la longueur de ce segment). </para>
      <para
>Pour ce faire, saisissez le texte en incluant un certain nombre de masques (<token
>%1</token
>, <token
>%2</token
> &etc;). Lorsque vous avez terminé, actionnez le bouton <guibutton
>Suivant</guibutton
> pour continuer. Si vous voulez changer le texte ou les variables plus tard, vous pouvez revenir en arrière en actionnant le bouton <guibutton
>Précédent</guibutton
>. </para>
      <para
>L'assistant affiche maintenant le texte saisi, avec les masques remplacés par quelque chose du type <guilabel
>argument 1</guilabel
>. 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 <guilabel
>argument 1</guilabel
>, puis sur le segment choisi dans la fenêtre principale de &kig; et choisiriez la propriété <guilabel
>Longueur</guilabel
>. 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 <guibutton
>Terminer</guibutton
> pour achever la réalisation de l'étiquette. </para>
      <screenshot>
	<screeninfo
>Choix d'une propriété pour un masque variable</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata
	    fileref="text_label_wizard__select_property.png"
	    format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Choix d'une propriété pour un masque variable</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
    </section>
    <section id="locuses">
    <title
>Lieux</title>
      <para
>&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. </para>
      <para
>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. </para>
      <screenshot>
	<screeninfo
>Création d'un lieu simple</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata
	      fileref="simple_locus_construction.png"
	      format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Création d'un lieu simple</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
      <para
>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. </para>
      <para
>La construction d'un lieu est réellement très simple. Cliquez sur le bouton Lieu dans la barre d'outils, ou choisissez <menuchoice
><guimenu
>Objets</guimenu
> <guisubmenu
>Autres</guisubmenu
> <guimenuitem
>Lieux</guimenuitem
> </menuchoice
> dans la barre de menus. Puis choisissez le point contraint comme point mobile (le texte <guilabel
>Point mobile</guilabel
> apparaîtra lorsque vous le survolerez avec la souris), et l'autre comme point dépendant. Le lieu apparaîtra ensuite. </para>
    </section>
  </chapter>

  <chapter id="scripting">
    <title
>Utilisation de script</title>
    <para
>&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). </para>
    <para
>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. </para>
    <para
>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 <guibutton
>Script Python</guibutton
> dans la barre d'outils, ou choisiriez <menuchoice
> <guimenu
>Objets</guimenu
> <guisubmenu
>Autre</guisubmenu
> <guimenuitem
>Script</guimenuitem
> </menuchoice
> dans la barre de menus. Un assistant sera alors affiché, qui vous permettra de continuer. </para>
    <screenshot>
      <screeninfo
>L'assistant de script</screeninfo>
      <mediaobject>
	<imageobject>
	  <imagedata fileref="script_wizard.png" format="PNG"/>
	</imageobject>
	<textobject>
	  <phrase
>L'assistant de script</phrase>
	</textobject>
      </mediaobject>
    </screenshot>
    <para
>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 <guibutton
>Suivant</guibutton
> pour continuer. </para>
    <para
>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 sûr que votre code est bien du code Python valide. Les personnes familières avec Python noteront que nous définissons actuellement une fonction Python appelée <function
>calc</function
>. 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 <keysym
>Tabulation</keysym
>. La première ligne ne commençant pas par une <keysym
>tabulation</keysym
> termine la définition de la fonction. </para>
    <para
>La fonction Python qui doit être définie s'appelle <quote
>calc</quote
>, 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 <parameter
>arg1</parameter
> et <parameter
>arg2</parameter
>, mais vous pouvez modifier leurs noms pour quelque chose ayant plus de sens si vous le voulez. </para>
    <para
>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 <function
>Point.coordinate()</function
> pour obtenir les coordonnées des deux points. </para>
    <para
>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 :</para>

<programlisting
>def calc( a, b ):
        m = ( a.coordinate() + b.coordinate() ) / 2;
        return Point( m )
</programlisting>

    <screenshot>
      <screeninfo
>Saisie du code</screeninfo>
      <mediaobject>
	<imageobject>
	  <imagedata fileref="script_wizard_entering_code.png" format="PNG"/>
	</imageobject>
	<textobject>
	  <phrase
>Saisie du code pour le milieu dans l'assistant de script.</phrase>
	</textobject>
      </mediaobject>
    </screenshot>
    <para
>Si vous cliquez maintenant sur le bouton <guibutton
>Terminer</guibutton
>, le nouvel objet apparaîtra dans le document &kig;. Si vous déplacez un des points, le point nouvellement créé l'accompagnera. Des objets bien plus puissants peuvent être construits de cette manière, nous vous encourageons à essayer. </para>
    <screenshot>
      <screeninfo
>Un script a été créé</screeninfo>
      <mediaobject>
	<imageobject>
	  <imagedata fileref="constructed_script_object.png" format="PNG"/>
	</imageobject>
	<textobject>
	  <phrase
>Le script nouvellement créé. </phrase>
	</textobject>
      </mediaobject>
    </screenshot>
    <para
>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 <function
>Point.coordinate()</function
>. 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 celles-ci est fournie <ulink url="http://edu.kde.org/kig/manual/scripting-api/index.html"
>ici</ulink
>. </para>
  </chapter>

  <chapter id="kig-features">
    <title
>Fonctionnalités de &kig;</title>

      <itemizedlist>
	<listitem>
	  <para
>&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, que vous et moi. </para>
	  <para
>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 <email
>devriese@kde.org</email
>. </para>
	</listitem>
	<listitem>
	  <para
>&kig; est un programme KPart, ce qui signifie que vous pouvez l'inclure dans d'autres logiciels &kde;. Si vous ouvrez un fichier <literal role="extension"
>.kig</literal
> dans &konqueror;, il pourra être ouvert directement dans la fenêtre &konqueror; sans ouvrir une autre application. </para>
	</listitem>
	<listitem>
	  <para
>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. </para>
	</listitem>
	<listitem>
	  <para
>&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 <link linkend="working-with-types"
>gestionnaire de types</link
>, vous pouvez gérer ces objets. Vous pouvez les exporter vers un fichier, les importer d'un fichier, et les effacer. </para>
	</listitem>
	<listitem>
	  <para
>&kig; enregistre ses données dans un format &XML; lisible. </para>
	</listitem>
	<listitem>
	  <para
>&kig; gère la construction de lieux. </para>
	</listitem>
	<listitem>
	  <para
>&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;. </para>
	</listitem>
	<listitem>
	  <para
>&kig; a un système de transformation très flexible. </para>
	</listitem>
	<listitem>
	  <para
>&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 la gestion d'autres formats de fichiers est aussi prévu. </para>
	</listitem>
      </itemizedlist>
  </chapter>


  <chapter id="faq">
    <title
>Questions et réponses</title>
&reporting.bugs; &updating.documentation; <para
></para>
  </chapter>

  <chapter id="credits">
    <title
>Remerciements et licence</title>

    <para
>&kig; </para>
    <para
>&kig; copyright 2002 Dominique Devriese <email
>devriese@kde.org</email
> </para>

    <para
>Documentation copyright 2002-2003 Dominique Devriese. <email
>devriese@kde.org</email
> </para>
    <para
>Traduction française par &YvesGuillou; et &CedricPasteur;</para
>   &underFDL; &underGPL; </chapter>

  <appendix id="installation">
    <title
>Installation</title>

    <sect1 id="getting-kig">
      <title
>Comment obtenir &kig;</title>
&install.intro.documentation; </sect1>

    <sect1 id="compilation">
      <title
>Compilation et Installation</title>
&install.compile.documentation; </sect1>

  </appendix>

  <appendix id="contributing">
    <title
>Participez</title>
    <section id="kig-is-free">
      <title
>Programme libre</title>
      <para
>&kig; est un<ulink url="http://www.gnu.org/philosophy/philosophy.html#AboutFreeSoftware"
> Logiciel libre</ulink
>. 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. </para>
    </section>
    <section id="contribute-to-kig">
      <title
>Participez</title>
      <para
>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 à <email
>devriese@kde.org</email
>, 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. </para>
      <para
>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 <filename
>COPYING</filename
>, dans les sources de &kig; ou dans l'onglet licence de la boîte de dialogue <guilabel
>À propos de Kig</guilabel
>. </para>
    </section>
    <section id="howto-contribute">
      <title
>Comment contribuer ?</title>
      <para
>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 <filename
>COPYING</filename
> des sources de &kig;, et dans le chapitre <link linkend="credits"
>Remerciements et Licences</link
> de ce manuel. </para>
    </section>
  </appendix>

  &documentation.index;
</book>
<!--
Local Variables:
mode: xml
End:
-->
