// Help file syntax crODIF 2
// This is the help file for C.a.R., used inside the program
// for context sensitive help, and also to extract HTML
// pages using the Translator program contained in C.a.R.
// Refer to the Wiki for more information.


//************************************
.index
.related start online license gui
CaRMetal


CaRMetal est développé depuis février 2006 par Eric Hakenholz à partir du moteur mathématique du logiciel C.a.R. de René Grothmann. A côté des fonctionnalités de ce logiciel d'origine, on en trouve beaucoup de nouvelles (voir <a href="http://db-maths.nuxit.net/CaRMetal/versions.html">la page d'évolution de CaRMetal</a>), et du point de vue de l'interface graphique, ce logiciel propose une approche différente très axée sur la notion de <a href="http://revue.sesamath.net/spip.php?article39">manipulation directe</a>. Il ne s'agit donc pas d'un simple réhabillage cosmétique de l'application C.a.R. - ce qui en soi n'aurait que peu d'interêt - mais d'un changement important dans la manière d'accéder aux fonctionnalités.

Je vous souhaite de bonnes constructions avec CaRMetal !
 L'auteur :
 Eric Hakenholz

//************************************
.start
.related index online license gui tips localize language
Aide contextuelle

Ce système d'aide fournit des informations sur <b>l'outil courant</b> (clic sur une
<i>icône</i> de la palette de droite ou de la <a href="#properties">barre de propriétés</a> ou encore sur une <i>boîte d'entrée</i> de cette barre de propriétés), sur la <b>dernière action</b>, ou sur toute <b>requête</b> formulée par l'intermédiaire du
cadre de recherche : 

<img src="images/context/001.gif" border="1">

L'entrée de tout mot ou début de mot dans ce cadre provoquera, à chaque lettre tapée, une recherche "plein texte" dans la totalité de l'aide afin d'y trouver des occurrences
de la requête.
Lorsque plusieurs rubriques d'aide correspondent à un sujet donné,
un menu de navigation est disponible (icône "loupe" ou flèche bas du clavier). Les sujets connexes à une aide donnée sont aussi affichés sous forme de liens
hypertextes en bas de page.

Le texte de certaines rubriques contiennent aussi des liens qui pointent
soit vers une autre rubrique, soit vers un site Internet. Dans ce
dernier cas, le navigateur s'ouvrira automatiquement à l'adresse
ciblée par le lien.

Bonnes constructions avec CaRMetal !
 Cordialement,
 <I><i>Eric Hakenholz</i></I>

//************************************
.online
.related start license
Aide sur Internet

Vous pouvez trouver sur <a href="http://db-maths.nuxit.net/CaRMetal/">le site de CaRMetal</a> des tutoriels sous forme d'animations flash qui permettront au débutant de se familiariser rapidement avec certaines fonctionnalités du logiciel. Certains tutoriels sont aussi destinés aux utilisateurs avertis : ils sont de toutes façons classés par ordre de difficulté croissante, de une à quatre étoiles.

Pour avoir quelques exemples supplémentaires de ce qui peut se faire avec CaRMetal, nous vous proposons la lecture des différents articles du <a href="http://db-maths.nuxit.net/CARzine/">webzine CARzine</a>.

//***********************
.license
.related online start
Licence de CaRMetal

CaRMetal est un logiciel gratuit sous licence GNU-GPL, ce qui signifie que vous
pouvez le redistribuer et/ou le modifier selon les termes de la <a href="http://www.gnu.org/licences/gpl.txt">licence publiée par la "Free Software Foundation"</a>.

//************************************
.nom_points
.related zone_aspect point gui iconbar macrobar mouse zoom online keyboard
Menu de choix<br >des noms de points

Ce menu permet d'activer l'attribution automatique des noms de points dans l'ordre alphabétique à partir d'une lettre donnée.

<img src="images/palettes/palettecars.gif" border="1">

Les 4 premières lettres de la colonne bleue de ce menu permettent de choisir 4 types de jeux de caractères : majuscules (D), minuscules (d), majuscules grecques (∆) et minuscules grecques (∂). Dans l'exemple, le jeu "majuscules" est sélectionné : si on clique sur E', tous les points créés dans la figures apparaîtront avec les noms E', F', G', H', etc...

Cliquer sur P1 désactive le nommage automatique : de manière interne les points seront nommés de manière générique P1, P2, etc... et leurs noms n'apparaîtront pas avec la création des points.

//************************************
.zone_aspect
.related nom_points gui iconbar
Zone de palette<br >"Aspect et couleur"

Cette zone se charge de définir l'aspect des objets à créer, c'est à dire ceux qui ne sont pas encore dans la construction. Si, par exemple, l'outil droite est sélectionné, la partie
inférieure de cette zone affiche les propriétés d'aspect des droites :

<img src="images/palettes/aspectobj.gif" border="1">

Cliquer sur d'autres icônes (couleur, épaisseur, ...) modifie l'aspect par défaut des droites à venir. Notons qu'ici certaines icônes sont grisées, donc inaccessibles,
parce que certaines propriétés ne peuvent s'appliquer aux droites.

Il serait fastidieux d'avoir à cliquer sur l'outil point à chaque fois qu'on veut changer l'apparence des points à venir, d'autant plus qu'ils peuvent être créés "à la volée" pendant une phase de construction avec d'autres outils (droite, cercle, etc...). La partie supérieure de cette zone permet de changer la forme et le nom des points même lorsqu'un autre outil est sélectionné :

<img src="images/palettes/formepts.gif" border="1">

En cliquant sur la dernière icône (indiquant P4 ci-dessus) un menu fait apparaître <a href="#nom_points">une palette dédiée au choix du nom des points à venir</a>.

//************************************
.gui
.related zone_aspect iconbar 
Interface utilisateur

La fenêtre principale de CaRMetal, située juste à droite de ce panneau d'aide,
affiche la construction géométrique. La vue de la figure peut être modifié soit par
un déplacement (clic-droit glissé dans une zone vide), soit par un zoom (molette de la souris). Un <a href="#zoom">outil zoom</a>, disponible dans le menu Edition, peut aussi être utilisé pour ces deux actions.

A droite de cette construction se trouve la palette d'outils classés par thèmes dans différentes zones. Cliquer sur ces outils fera apparaître l'aide expliquant ce à quoi ils servent et comment s'en servir.

Après un clic-droit sur un objet, ou après avoir demandé "Inspecteur d'objets" dans le menu "Affichage" une barre horizontale de propriétés des objets apparaît au dessus ou en dessous de la fenêtre principale. Attention à la différence de status entre cette barre et la zone de palette "Aspect & couleur" : cette dernière se charge de l'apparence des objets à venir, tandis que la barre de propriété prend le relai pour les objets déjà créés.

//************************************
.iconbar
.related gui 
La palette principale

Il y a dans la palette principale de CaRMetal (à droite de la fenêtre de construction), des icônes-outils de nature différentes :

- Les icônes qui attendent que l'utilisateur clique dans la fenêtre de construction. C'est le cas de tous les outils de la zone "Construction".

- Les icônes qui servent à modifier les paramètres par défaut des objets. C'est le cas de tous les icônes de <a href="#zone_aspect">la palette "Aspect & couleur"</a>.

- Des icônes-bascule comme l'icône d'affichage du repère <img src="#palette/grid.png" border="1" align="middle"> ou encore celle qui permet d'afficher les objets cachés <img src="#palette/hidden.png" border="1" align="middle">.

//************************************
.mouse
.related move edit
La souris

Lorsqu'un outil de construction est sélectionné, le bouton gauche de la
souris permet de créer un nouvel objet dans la figure.

De nombreux objets attendent que l'utilisateur choisissent plus d'un seul objet.
Dans ce cas, les objets apparaissent en rouge au fur et à mesure qu'ils sont
sélectionnés.

S'il peut avoir un rôle dans une phase de création, un objet "flashe" en jaune
fluo au passage du curseur, pour que l'utilisateur sache exactement ce qu'il est
en train de faire. 

<img src="images/flash.gif" border="0">

Ci-dessus, le logiciel prévient qu'on s'apprête à créer un point
sur une droite, ou sur un cercle, ou à l'intersection des deux. Ces réponses vidéos sont
systématiques dans le logiciel.

Si la touche <i>shift</i> est pressée pendant la création d'un point, d'un cercle, d'un segment
ou d'un angle, CaRMetal comprendra qu'il faut qu'il crée un objet fixe dans la figure, invitant
par l'intermédiaire de <a href="#properties">la barre de propriétés</a> l'utilisateur à déterminer
numériquement les coordonnées du point, le rayon du cercle, la longueur du segment ou l'angle.

Le clic-droit est comme une seconde nature dans le logiciel :
 - Sur un objet, il charge ses paramètres dans la barre de propriétés pour que vous puissiez les
modifier aisément.
 - Si la touche <i>ctrl</i> est enfoncée pendant le clic-droit sur un objet, les propriétés
conditionnelles de l'objet apparaissent dans la barre.
 - Si la touche <i>ctrl</i> ET la touche <i>shift</i> sont enfoncées
pendant le clic-droit sur un cercle ou une droite définie par deux points l'objet devient "incomplet" puis, si on clique encore, invisible.
 - Si la touche <i>ctrl</i> ET la touche <i>shift</i> sont enfoncées
pendant le clic-droit sur un autre type d'objet, cet objet devient caché.
 - le clic-droit glisser permet de déplacer un objet même quand l'outil <a href="#move">"déplacer"</a> n'est pas sélectionné.
 - le clic-droit glisser permet aussi de déplacer les noms des objets (les étiquettes) lorsqu'ils sont visibles dans la fenêtre. Si la  touche <i>shift</i> est enfoncée pendant cette opération, le nom peut être déplacé à n'importe quel endroit de la fenêtre. Sinon, l'étiquette du nom restera près de l'objet.

//************************************
.imcenter imstretch imtile background
.related save
Image de fond de fenêtre

CaRMetal peut afficher une image derrière la construction courante. Cette image sera encapsulée au fichier après enregistrement, à condition d'enregistrer aussi le classeur. Cliquer sur l'outil <img src="#palette/background.png" border="1" align="middle" width="28" height="28"> de la zone de palette "Fond : couleur & image" permet de sélectionner le fichier image. Cette icône est une bascule : recliquer dessus lorsqu'elle est sélectionnée aura pour effet d'enlever l'image de fond.

La façon dont l'image apparaît en fond de figure est géré par les trois icônes situés dans le coin inférieur droit de cette zone de palette :

<table width="100%" class="tab" cellspacing="2">
<tr><td width="40"><img src="#palette/imstretch.png"></td><td class="comment">Permet d'étirer l'image pour qu'elle occupe tout le fond de la fenêtre</td></tr>
<tr><td width="40"><img src="#palette/imcenter.png"></td><td class="comment">Permet de centrer l'image de fond</td></tr>
<tr><td width="40"><img src="#palette/imtile.png"></td><td class="comment">Permet de répéter l'image de fond sous forme de mosaique</td></tr>
</table>

//************************************
.prop_name
.related properties
Nom d'un objet<p class="comment">Barre de propriétés</p>

Les noms d'objets peuvent contenir presque tous les caractères et doivent tous être unique. S'ils contiennent le caractère "~" l'affichage du nom se limitera à ce qui est avant. Cela peut permettre de visualiser un même nom pour deux objets différents, mais on peut pour cela utiliser aussi (plus simplement !) <a href="#prop_alias">l'alias des objets</a>.

Si un nom d'objet se termine par un nombre, ce nombre est automatiquement placé en indice à l'affichage. Par exemple, si on entre "A1" pour le nom, ce qui sera affiché est A<sub>1</sub>. Il se peut que dans de rares cas ce ne soit pas ce que vous vouliez voir : il faudra alors simplement utiliser l'alias : entrer "A1" dans cette autre rubrique ne provoque pas la mise en indice automatique.

Si on demande, par l'intermédiaire de <a href="#prop_showline">deux icônes dédiés</a>, l'affichage du nom ou de <a href="#prop_alias">l'alias</a> et de la valeur d'un objet, l'affichage est du type "s=2", où s est le nom ou l'alias de l'objet. Si on termine le nom ou l'alias d'un objet par le caractère de soulignement "_", le signe "=" n'est pas affiché. Par exemple si le nom d'un point est P_ et qu'on demande l'affichage de sa "valeur" (les coordonnées) l'affichage est du type P(2,1;5,2) et non pas P=(2,1;5,2).

Le nom de certains objets (comme les cercles, les segments, les angles) désigne aussi sa "valeur numérique", et peut être réutilisé comme tel. Par exemple si s1 est le nom d'un segment, il devient possible de créer un <a href="#fixedcircle">cercle fixe</a> de rayon s1/2, de créer une <a href="#expression">expression </a>contenant s1.

//************************************
.prop_alias
.related properties
Alias d'un objet<p class="comment">Barre de propriétés</p>

Les objets peuvent utiliser d'autres noms (un "alias") pour l'affichage que leurs noms propres. Comme les textes que l'ont peut inclure dans une figure,
les alias peuvent aussi être utilisés pour insérer du <a href="#latex">code LaTeX</a> entre $...$ qui permettent un affichage sophistiqué des noms d'objets. Un alias peut aussi contenir des expressions entre %...% qui
sont évaluées en permanence.

Si par exemple, pour un point A de l'axe des abscisses, on crée l'alias $x_A=%x(A)%$ , on obtiendra ceci :

<img src="images/tex.gif" border="1">

Une chaine de caractère de la forme %=s% renvoie le nom courant de l'objet s : si on change son nom l'expression est automatiquement actualisée pour refléter
ce changement.

Une chaine de caractère de la forme %~s% retournera l'équation de l'objet s.

//************************************
.prop_unit
.related properties
Unité des mesures affichées<p class="comment">Barre de propriétés,<br >onglet Aspect</p>

Certains objets peuvent afficher des mesures et des unités. L'unité peut être n'importe quel texte : celui-ci sera automatiquement
placé juste après la longueur. L'unité peut donc être interprétée comme étant
juste un suffixe de la mesure.

Si on demande par exemple les propriétés d'un segment et qu'on demande " km"
comme unité, l'affichage donnera :

<img src="images/unit.gif" border="1">

//************************************
.prop_zindex
.related properties
Niveaux de calques<p class="comment">Barre de propriétés,<br >onglet Aspect</p>

Vous pouvez attribuer un niveau de calque à n'importe quel objet géométrique. De deux objets, celui qui a le plus petit niveau de calque est affiché devant l'autre dans la fenêtre.

<table width="100%">
<tr><td><img src="images/zindex02.gif" border="1"></td><td width="10">&nbsp;</td><td><img src="images/zindex01.gif" border="1"></td></tr>
<tr><td class="comment">Le calque du triangle vaut 1 et celui du segment vaut 2</td><td width="10">&nbsp;</td><td class="comment">Le calque du triangle vaut 2 et celui du segment vaut 1</td></tr>
</table>
 Un niveau de calque n'est pas forcément un entier, et n'est pas non plus nécessairement un positif. Dans tous les cas, la règle du "inférieur->devant" est appliquée.

Un niveau de calque peut aussi être autre chose qu'un simple nombre : on peut entrer une expression, ce qui permet d'obtenir à l'affichage un ordre de superposition des objets qui dépend de la configuration géométrique.

//************************************
.prop_coordinates
.related properties
Coordonnées<p class="comment">Barre de propriétés,<br >onglet Numérique</p>

Les cadres "X" et "Y" permettent d'imposer des coordonnées cartésiennes à un point. Si le chaînage des coordonnées est activé par l'icône <img src="#palette/chaine.png" border="1" align="middle">, la frappe clavier dans le cadre X entraîne un remplissage automatique du cadre Y, avec remplacement de toutes les fonctions abscisses "x()" par des fonctions ordonnées "y()".

Avec chaînage actif, il suffit par exemple de taper "2*x(B)-x(A)" comme abscisse d'un point M pour que l'expression "2*y(B)-y(A)" soit affichée automatiquement dans le cadre Y, et le point M devient donc le symétrique de A par rapport à B.

Pour activer ou désactiver le chaînage, il suffit de cliquer sur l'icône de la chaîne.

//************************************
.prop_grid
.related properties grid
Incrément de la grille<p class="comment">Barre de propriétés,<br >onglet Numérique</p>

Un point libre par définition peut être déplacé n'importe où dans la fenêtre. Mais si on lui impose un incrément autre que 0, ce point va suivre un déplacement discret. Si, par exemple, un point a 0,5 comme incrément, il ne se déplacera que de demi-unité en demi-unité, en suivant les noeuds d'une grille virtuelle 0,5x0,5 centrée sur l'origine du repère interne. On peut aussi définir un incrément pour des points sur objet.

Le grand intérêt de ce système par rapport à une grille magnétique est qu'on peut attribuer un incrément différent à plusieurs points... sans avoir à créer plusieurs grilles.

//************************************
.prop_length
.related properties
Longueur d'un segment<br >Rayon d'un cercle<p class="comment">Barre de propriétés,<br >onglet Numérique</p>

Lorsqu'on demande les propriétés d'un cercle (rep. d'un segment), on peut dans l'onglet "Numérique" fixer son rayon (resp. sa longueur) par l'intermédiaire du cadre rayon (resp. longueur).

En phase de création, on peut utiliser les outils <img src="#palette/fixedcircle.png" border="1" align="middle"> et <img src="#palette/fixedsegment.png" border="1" align="middle"> pour imposer un rayon ou une longueur : la barre de propriété s'ouvre alors automatiquement et il n'y a qu'à taper au clavier.

On peut entrer indifféremment un nombre ou une expression dans ce cadre.

//************************************
.prop_angle
.related properties
Mesure d'un angle<p class="comment">Barre de propriétés,<br >onglet Numérique</p>

Lorsqu'on demande les propriétés d'un angle, on peut dans l'onglet "Numérique" fixer sa mesure en degrés par l'intermédiaire du cadre Angle.

En phase de création, on peut utiliser l'outil <img src="#palette/fixedangle.png" border="1" align="middle"> pour imposer une mesure d'angle : la barre de propriété s'ouvre alors automatiquement et il n'y a qu'à taper au clavier.

On peut entrer indifféremment un nombre ou une expression dans ce cadre.

//************************************
.prop_conditionals
.related properties
Propriétés conditionnelles des objets<p class="comment">Barre de propriétés,<br >onglet Conditionnel</p>

On peut attribuer des propriétés conditionnelles à tout objet géométrique. Cela se fait par l'intermédiaire des cadres de l'onglet "Conditionnel" de la barre de propriétés.

Prenons un exemple : on se donne un point A et un segment s. Dans les propriétés conditionnelles de s (clic droit sur l'objet) on entre dans le cadre intitulé <i>Rouge</i> l'expression "x(A)&lt;0" et dans celui intitulé <i>Épais</i> la même expression. Dans le cadre <i>Vert</i> nous entrons "x(A)&gt;0" et dans le cadre <i>Pointillés</i> la même expression. Le résultat est que le segment s est affiché rouge et épais si A est d'abscisse négative et vert pointillé sinon.

//************************************
.prop_thickness
.related properties
Epaisseur des traits<p class="comment">Barre de propriétés, onglet Aspect</p>

Trois modes d'affichage des lignes sont disponibles : normal, épais et pointillé.
Pour les polygones et les cercles remplis, ces trois modes donneront l'apparence suivante :

<table width="100%"><tr><td><img src="images/thickness/normal.gif" border="1"></td><td><img src="images/thickness/thick.gif" border="1"></td><td><img src="images/thickness/dotted.gif" border="1"></td><td></td></tr><tr><td class="comment">Normal: fond léger, contour foncé</td><td class="comment">Épais: fond et coutour foncés</td><td class="comment">Pointillés: fond léger et aucun contour</td></tr></table>

//************************************
.prop_color
.related properties
Couleur<p class="comment">Barre de propriétés, onglet Aspect</p>

Six couleurs standard (noir, bleu, cyan, vert, marron, rouge) sont à votre disposition. Vous pouvez cliquer sur une de ces icônes pour changer la couleur de l'objet, mais vous pouvez aussi utiliser le <a href="#prop_scolor">menu des couleurs personnalisées</a>.

//************************************
.prop_scolor
.related properties
Couleurs personnalisées

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="images/scolors/icone.png" border="0"></td><td class="comment2">
A côté des <a href="#prop_color">six couleurs standard</a> figure dans la palette et la barre de propriétés un menu vous permettant de choisir une couleur quelconque.
</td></tr>
</table>
- Lorsqu'on clique-gauche sur l'icône de ce sélecteur de couleurs (en maintenant le bouton enfoncé) une palette de couleurs saturées vous permet par simple glisser de sélectionner une couleur :

<img src="images/scolors/saturated.jpg" border="1">

- Si maintenant (bouton gauche toujours enfoncé) vous appuyez sur la touche Majuscule, c'est une palette de couleur désaturées qui prend le relais :

<img src="images/scolors/desaturated.jpg" border="1">

- Si vous appuyez sur la touche Alt, c'est une palette de couleurs web qui arrive :

<img src="images/scolors/swatches.jpg" border="1">

- Si vous cliquez cette fois-ci avec le bouton droit de la souris sur ce menu, la palette qui arrive vous donne la liste de toutes les couleurs qui ont été utilisées dans la construction. En bas de cette palette figure en commentaire le nom du premier objet de la construction contenant la couleur survolée :

<img src="images/scolors/construction.gif" border="1">

- Si vous préférez maintenant obtenir une boîte à dialogue système pour obtenir de la couleur, il vous suffit d'enfoncer la touche espace pendant qu'une palette est affichée.

//************************************
.prop_type
.related properties
Forme des points<p class="comment">Barre de propriétés, onglet Aspect</p>

En demandant les propriétés d'un point, dans l'onglet <i>Aspect</i>, on peut modifier la façon dont cet objet sera affiché. Vous pouvez aussi modifier la taille des points, mais d'une manière globale, en agissant sur l'un des curseurs de la zone de palette : "Tailles".

//************************************
.prop_circleline
.related properties
Apparence des cercles<p class="comment">Barre de propriétés, onglet Aspect</p>

L'apparence des cercles est définie par <a href="#prop_thickness">l'épaisseur des traits</a>, par la
<a href="#prop_color">couleur</a>, les <a href="#prop_showline">bascules montrer/cacher</a> et par les quatre icônes ci-dessous :


<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/partial.png" border="0"></td><td class="comment2">
Lorsque des points sont sur le cercle,
sélectionner ce paramètre entraînera un dessin incomplet
du cercle, qui ressemble à des "traits" de construction faits au compas et passant par les points.</td></tr>
<tr><td class="tds" width="40"><img src="#palette/filled.png" border="0"></td><td class="comment2">
Le cercle est rempli lorsque cette icône est sélectionnée.
</td></tr>
<tr><td class="tds" width="40"><img src="#palette/obtuse.png" border="0"></td><td class="comment2">
Lorsque le cercle est représenté sous forme d'arc AB (bouton arc de l'onglet "Numérique"),
sélectionner cette icône dessinera l'arc orienté AB, quel que soit la mesure de son angle.
Sinon, le petit arc sera affiché.
</td></tr>
<tr><td class="tds" width="40"><img src="#palette/solid.png" border="0"></td><td class="comment2">
Lorsque le cercle est rempli, on peut le rendre opaque en sélectionnant cette icône : il sera alors
susceptible de masquer tous les objets qui ont été créés avant lui. Notons qu'on peut aussi combiner
l'utilisation de ce paramètre "opaque" avec la notion de <a href="#prop_zindex">niveau de calque</a>.</td></tr>
</table>

//************************************
.prop_polyline
.related properties
Apparence des polygones<p class="comment">Barre de propriétés, onglet Aspect</p>

L'apparence des polygones est définie par <a href="#prop_thickness">l'épaisseur des traits</a>, par la
<a href="#prop_color">couleur</a>, les <a href="#prop_showline">bascules montrer/cacher</a> et par les deux icônes ci-dessous :

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/filled.png" border="0"></td><td class="comment2">
Le polygone est rempli lorsque cette icône est sélectionnée.
</td></tr>
<tr><td class="tds" width="40"><img src="#palette/solid.png" border="0"></td><td class="comment2">
Lorsque le polygone est rempli, on peut le rendre opaque en sélectionnant cette icône : il sera alors
susceptible de masquer tous les objets qui ont été créés avant lui. Notons qu'on peut aussi combiner
l'utilisation de ce paramètre "opaque" avec la notion de <a href="#prop_zindex">niveau de calque</a>.</td></tr>
</table>

//************************************
.prop_showline
.related properties hide
Bascules montrer/cacher<p class="comment">Barre de propriétés, onglet Aspect</p>

Ces icônes-bascule permettent d'afficher ou de masquer l'objet, sa valeur ou son nom :

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/hide.png" border="0"></td><td class="comment2">
Cette icône est commune à tous les objets : elle permet de montrer ou cacher l'objet dans la construction.
</td></tr>
<tr><td class="tds" width="40"><img src="#palette/showvalue.png" border="0"></td><td class="comment2">
Certains objets peuvent afficher des valeurs. Cette icône, lorsqu'elle est présente, permet d'afficher par exemple la longueur d'un segment, le rayon d'un cercle, la valeur d'une expression, etc... Si <a href="#prop_unit">une unité</a> a été définie, celle-ci accompagnera toujours la valeur.
</td></tr>
<tr><td class="tds" width="40"><img src="#palette/showname.png" border="0"></td><td class="comment2">
La plupart des objets permettent, par l'intermédiaire de cette icône, que l'on affiche <a href="#prop_name">leurs noms</a> ou <a href="#prop_alias">leurs alias</a> dans la construction.
</td></tr>
</table>

//************************************
.prop_boldline
.related properties
Grosseur des caractères<p class="comment">Barre de propriétés, onglet Aspect</p>

Ces icônes ne servent à quelque chose que si le nom, l'alias ou la valeur de l'objet est affiché :
<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/bold.png" border="0"></td><td class="comment2">
Le nom, l'alias ou la valeur apparaîtra en caractères gras</td></tr>
<tr><td class="tds" width="40"><img src="#palette/large.png" border="0"></td><td class="comment2">
Le nom, l'alias ou la valeur apparaîtra en police plus grande.
</td></tr>
</table>

//************************************
.prop_magnetic
.related properties
Magnétisation des objets

Un point mobile P peut-être attiré par n'importe quel objet de la construction.

Lorsqu'on clique sur l'icône représentant un aimant, ou dans la boîte de texte "Objets magnétiques" de l'onglet "Numérique" (propriétés du point P), le mode d'aimantation est activé : on peut alors sélectionner à la souris les objets de la construction qui vont attirer le point P. On peut aussi taper au clavier, dans cette boîte de texte, le nom des objets séparés par des virgules.

La boîte de texte "Attraction" représente le rayon d'action, en pixels, du champs magnétique qui s'exerce autour de chaque objet dont le nom figure dans la liste "Objets magnétiques". On peut aussi définir des exceptions : si, par exemple, le champs "Objets magnétiques" contient la liste "A,E,c1:20,l1" et que le champs "Attraction" contient 50, les objets A,E et l1 auront un rayon d'attraction de 50 pixels, alors que l'objet c1 attirera P dans un rayon de 20 pixels.

//************************************
.properties
.related prop_name prop_alias prop_unit prop_zindex prop_coordinates prop_grid prop_length prop_angle prop_conditionals prop_thickness prop_color prop_type prop_circleline prop_showline prop_boldline edit conditions colors hide mouse transparent point fixedangle replay animatebreak expressionsyntax latex
Barre de propriétés


Vous pouvez ouvrir cette barre horizontale en effectuant un clic-droit sur
un objet, en utilisant <a href="#edit">l'outil d'édition</a> ou en demandant "Inspecteur d'objets" dans le menu "Affichage". Les propriétés de l'objet sur lequel on effectue un clic-droit sont chargées dans cette barre et organisés suivant trois rubriques : "Aspect", "Numérique" et "Conditionnel".

Beaucoup de paramètres sont communs à tous les objets, certains sont spécifiques : dans tous les cas, vous pourrez obtenir une aide contextuelle ciblée en cliquant dans un cadre texte, une icône ou n'importe quel item de cette barre de propriétés.

//************************************
.latex
.related properties text
LaTeX Code

CaRMetal utilise HotEqn pour afficher des formules LaTeX. Dans des textes, il faut entourer tout code LaTeX par le caractère $.

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#bar/carbtn.png" border="0"></td><td class="comment2">Dans la barre de propriétés, lorsqu'on tape du texte dans certains cadres, on peut utiliser l'icône <i>Insérer</i> ci-contre pour obtenir un menu intitulé "Commandes LaTeX". Les articles de ce menu créeront pour vous automatiquement des formules LaTeX usuelles.</td></tr>
</table>

HotEqn peut afficher beaucoup de formules LaTeX. Les lettres grecques sont supportées (\alpha,\beta, ...), comme beaucoup de symboles LaTeX (\nabla). Bien sûr la notation indice (x_n) ou exposant (x^2) est possible, comme les fractions (\frac{1}{x}) ou la racine carrée (\sqrt{x}). Les grands opérateurs, comme l'intégrale ou la somme peuvent aussi être affichées, tout comme les limites (\lim_{x \to \infty}).

Les grands crochets ou parenthèses sont très utiles, par exemple pour afficher une matrice : 

$\left(\begin{array}{cc}2&3 \\3&4\end{array}\right)$

Pour de plus amples informations sur les possibilités de HotEqn, vous pouvez vous rendre <a href="http://www.esr.ruhr-uni-bochum.de/VCLab/software/HotEqn/HotEqn.html">sur cette page web (en anglais)</a>.

//************************************
.transparent
.related prop_circleline prop_polyline prop_conditionals
Transparence

Les objets remplis tels que les polygones ou les cercles peuvent apparaître opaques ou transparents :

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/solid.png" border="0"></td><td class="comment2">
Lorsque l'objet est rempli, on peut le rendre opaque en sélectionnant cette icône dans la barre de propriétés (ongle <i>Aspect</i>): il sera alors susceptible de masquer tous les objets qui ont été créés avant lui dans la construction. Notons qu'on peut aussi combiner l'utilisation de ce paramètre "opaque" avec la notion de <a href="#prop_zindex">niveau de calque</a>.</td></tr>
</table>

Le choix opaque ou transparent peut aussi être fait avant de créer l'objet, dans la zone de palette "Aspect et couleur".

//******************************************
.copy exportpng exporteps
.related save
Exporter des images

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/copy.png" border="0"></td><td class="comment2">
Pour copier la fenêtre de construction dans le presse-papier, et ensuite le coller dans un document (image bitmap, c'est à dire en mode point)</td></tr>
<tr><td class="tds" width="40"><img src="#palette/exportpng.png" border="0"></td><td class="comment2">
Pour exporter la fenêtre de construction au format png (ce qui permet de l'insérer ensuite dans un document). Là encore, l'image obtenue est en mode point.</td></tr>
<tr><td class="tds" width="40"><img src="#palette/exporteps.png" border="0"></td><td class="comment2">
Comme l'outil précédent, mais l'exportation se fait avec un format vectoriel (donc on évite les disgracieux "escaliers"). Le format eps est utilisé principalement par le logiciel Illustrator.</td></tr></table>

En utilisant le menu déroulant de gauche, il est également possible d'exporter au format SVG, autre format vectoriel (utilisé par de nombreux logiciels : inkscape, scribus …)

//******************************************
.move
.related mouse construction
Déplacer les objets

L'outil permet par un cliquer-glisser (bouton gauche) de déplacer les objets libres. 

Au moment de la sélection de cet outil à la souris on peut savoir quels sont les objets libres : ils "flashent".
Vivement recommandé : après avoir utilisé n'importe quel autre outil, pour éviter qu'il reste actif, un "échap" permet de revenir à ce mode "mouvoir". Là encore les objets libres "flashent". (Dans l'historique les objets libres sont précédés d'un ">").

Il y a une autre méthode pour déplacer les objets : le cliquer-glisser bouton droit. Ce qui permet de déplacer sans être obligé de quitter l'outil utilisé qui reste alors actif.

On peut déplacer les points, mais aussi les droites, les cercles, les polygones et les coniques : à condition qu'ils aient été définis par des points libres.

Il est possible de déplacer plusieurs points en même temps : les sélectionner avec Shift enfoncé (sauf le dernier).

//**************************
.edit
.related mouse properties
Modifier un objet

Qaund cet outil est actif, un survol à la souris de la figure donne le nom des objets, même et surtout ceux dont le nom est caché !

Cet outil équivaut un peu au clic-droit sur un objet pour faire apparaître ses <a href="#properties">propriétés </a> : cette fois c'est le clic gauche.
Il permet en plus de changer certaines propriétés de plusieurs objets à la fois : sélectionner alors les objets (sauf le dernier) avec la touche Maj.

//*******************************
.delete undo back
.related construction
Supprimer les objets

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/back.png" border="0"></td><td class="comment2">Cet outil supprime le dernier objet construit. Autre possibilité : utiliser la touche "return".</td></tr>
<tr><td class="tds" width="40"><img src="#palette/delete.png" border="0"></td><td class="comment2">Cet outil supprime l'objet sélectionné, ainsi que tous ceux qui en dépendent. Naturellement, cette action peut produire des effets de bord non désirés, spécialement si les objets utilisent des dépendances complexes. Un conseil : un "échap" immédiatement après l'utilisation de la poubelle permet de revenir au mode "mouvoir" .</td></tr>
<tr><td class="tds" width="40"><img src="#palette/undo.png" border="0"></td><td class="comment2">Celui-ci annule les dernières suppressions.</td></tr>
</table>

//********************************
.hide hidden
.related construction prop_showline mouse
Cacher/montrer

En fait, il y a deux outils à utiliser conjointement :

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/hide.png" border="0"></td><td class="comment2">Cet outil-bascule permet de montrer ou cacher l'objet dans la construction. Avec "shift+cacher" les objets deviennent "complètement cachés".</td></tr>
<tr><td class="tds" width="40"><img src="#palette/hidden.png" border="0"></td><td class="comment2">Tandis que cette autre bascule permet d'afficher ou masquer les objets cachés.</td></tr>
</table>

Quand un objet a été simplement caché (avec le premier outil) il peut être quand même "affiché" avec le second. Il apparaît alors avec sa couleur, mais un peu plus pâle. Ce qui permet de le déplacer malgré tout, ou encore d'accéder à ses propriétés. Vous pouvez <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/outil_cacher/outil_cacher.htm">visualiser un tutoriel internet</a> à ce sujet.

//********************************
.grid numgrid dottedgrid athickness0 athickness1 athickness2 acolor0 acolor1 acolor2 acolor3 acolor4 acolor5 
.related prop_grid point
Grille

La grille peut être activée/désactivée grâce à cet outil. Quand elle est activée, les axes sont des objets sur lesquels on peut placer des points, avec lesquels on peut créer des intersections, etc. Comme pour les autres objets, il est possible de changer son aspect, et ceci directement grâce aux outils de la palette situés dans "aspect de la grille".

Avant la version 3.5, quand la grille était affichée un point créé était magnétisé par des demi-carreaux, de même qu'un point déplacé avec le bouton droit de la souris.
A partir de la version 3.5 une grille présente n'est plus magnétique, tout point créé est libre ; sauf s'il est créé avec la touche "alt" enfoncée (grille présente) : alors il est sera attaché aux demi-unités (exception : les points sur les axes). Un clic-droit sur le point en question pour accéder à ses propriétés donnera d'ailleurs ceci :

<img src="images/increment.gif" border="0">

Il suffira de décocher l'option pour rendre le point libre.

Comme toute création de point avec la touche shift enfoncée donne un point fixe, la combinaison shift+alt+point donnera un point fixe avec des coordonnées multiples de 0,5 : très commode pour construire rapidement certains types de figure. 

Si une figure est enregistrée avec la grille affichée, la grille restera présente à la réouverture du fichier (ou du classeur).

//************************************
.bi_3Darete bi_3Dcoords bi_3Dcube bi_3Ddode bi_3Dtetra
.related prop_zindex prop_conditionals boundedpoint
Constructions 3D

CaRMetal n'est pas un logiciel 3D : on peut construire le "point d'intersection" de deux droites non coplanaires (ce qui pédagogiquement parlant peut être quand même très pertinent) ! Mais le logiciel permet de faire des dessins en perspective "qui tournent", et au très joli rendu. Techniquement c'est un peu complexe, mais <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/dessin_en_3D/dessin_en_3D.htm">un tutoriel internet</a> vous guidera pour ce type de constructions.

On peut aussi utiliser les nombreux fichiers tout faits (testés et utilisés en classe) qui se trouvent dans certains diaporamas du site de CaRMetal.

Dans un même fichier il est possible de construire une figure 2D et une figure 3D qui soient liées (comme un parallélépipède et son patron). Un film (à venir prochainement :-) ! ) vous raconte cette construction.

//************************************
.point
.related nom_points boundedpoint intersection selfreference
Points

Un point peut être généré par différents outils et de multiples
façons. L'outil point peut créer un point libre, un <a href="#boundedpoint">point sur un objet</a> ou un point
à une <a href="#intersection">intersection d'objets</a>. Les objets approchés par le curseur, lorsque cet
outil est sélectionné, flashent de manière à indiquer clairement ce
que vous vous apprêtez à faire :

<img src="images/point/001.gif" border="2">

Un point peut être attaché ou détaché à tout moment en prenant ses propriétés (clic-droit sur le point) : dans l'onglet Numérique figure un bouton "Attacher" ou "Détacher".

Si la touche "shift" est enfoncée pendant la création, le point sera
de coordonnées fixes. 

<I>Exemple d'utilisation :</I> faire un "shift-clic" sur un point déjà existant
effectue une sorte de clonage du point ciblé. Ceci est particulièrement
utile lorsqu'on souhaite avoir un bon aperçu des positions clé d'un point
dans une figure. Dans certaines circonstances (démarche d'investigation par exemple), cela peut être mieux que l'utilisation d'un lieu ou d'une trace de point... Vous pouvez <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/lieux_pt_par_pt/lieux_pt_par_pt.htm">visualiser un tutoriel internet</a> à ce sujet.

//************************************
.boundedpoint
.related point line function locus
Points sur objets

Ce sont des points contraints à rester sur une droite, un cercle, une courbe, un lieu etc... Un point peut être attaché ou détaché à tout moment en prenant ses propriétés (clic-droit sur le point) : dans l'onglet Numérique figure un bouton "Attacher" ou "Détacher".

Si l'objet sur lequel on place un point est un polygone ou un cercle, il est possible de demander à ce qu'il soit à l'intérieur de l'objet (enfermé par son périmètre). Cela se fait dans la barre de propriétés, en cochant la case "Dans l'objet" de l'onglet "Numérique".

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/boundedpoint.png" border="0"></td><td class="comment2">Quand on travaille sur une figure 3D, cet outil spécifique permet de fixer un point dans le polygone représentant un plan ou sur une face de polyèdre.</td></tr>
</table>


//***************************************
.select
.related move
Rectangle de sélection

Le rectangle de sélection est destiné à l'export d'une partie de la figure.
Une fois créé, ce rectangle est déplaçable dans la fenêtre par un simple cliquer-glisser.

Un "Édition-Copier" copie la sélection (au format image) dans le presse-papier. Il suffit ensuite d'un simple "Edition-Coller" dans le logiciel de son choix : traitement de texte, de dessin ... Les dimensions sont alors conservées.

Un "Édition-Copier vers pdf" (ou svg ou eps) effectue la même opération, mais au format vectoriel.

Il se peut que cette opération ne fonctionne pas : ce n'est pas CaRMetal qui est en cause, mais le logiciel récepteur ! Ce qui est le cas du logiciel InkScape par exemple. La procédure devient alors un export ("Fichier-Exporter vers PNG, EPS, SVG ou PDF" suivant les cas), suivi d'un enregistrement, puis d'un import dans l'autre logiciel.



//***************************************
.intersection
.related point selectintersection
Intersections

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/point.png" border="0"></td><td class="comment2">
Dans la grande majorité des cas c'est avec l'outil "point" que se crée une intersection entre deux objets (lignes, cercles, coniques, courbes et lieux) : il suffit de cliquer sur ce futur point d'intersection, les deux objets doivent "flasher".
</td></tr>
<tr><td class="tds" width="40"><img src="#palette/intersection.png" border="0"></td><td class="comment2">
On peut aussi utiliser cet outil spécifique en montrant successivement à la souris chacun des deux objets dont on cherche l'intersection.
</td></tr>
</table>

Dans le cas d'intersections multiples entre courbes et droites, lieux et droites etc, un point d'intersection peut être déplacé à la souris vers un autre point d'intersection.

//********************************************
.selectintersection
.related intersection point
Choix du point d'intersection

Par défaut, CaRMetal est un logiciel déterministe, c’est-à-dire que la figure doit retrouver la forme et sa position initiale quand, après manipulation directe, les objets constituants de la figure reviennent à leur position initiale. Mais on sait que cette propriété est en contradiction (au moins dans certains cas) avec le suivi continu des intersections des objets.

Il est cependant possible dans certaines configurations particulières (intersections de droites et cercles, de cercles entre eux, de coniques et droites) de forcer la continuité. 

La méthode à utiliser est illustrée par l'exemple qui suit : A et B étant donnés, on voudrait construire le triangle équilatéral ABE, avec E dans le demi-plan délimité par (AB) contenant C.

<img src="images/LoinPres1.gif" border="0">

Si on construit E de manière visuelle, c'est à dire en utilisant l'<a href="#intersection">outil point</a>, déplacer B "à gauche de A" fera passer E dans l'autre demi-plan ! Pour y remédier il suffit par clic-droit d'accéder aux propriétés de E ; alors dans l'onglet "numérique" apparaît ceci : 

<img src="images/LoinPres2.gif" border="0">

Un clic sur "près de" suivi d'un clic sur C résoudra le problème.  

Si on préfère utiliser l'<a href="#intersection">outil intersection</a>, les deux points communs E et F seront créés simultanément. Dans ce cas, E sera choisi près de C, tandis que F sera choisi loin de C. (Remarque : un point peut être choisi près de lui-même, plus précisément près du point avec lequel il coincide)

Pour plus de détails, on pourra consulter cet article (onglet <i>exercices</i> et onglet <i>manipulations</i>)

//********************************************
.midpoint parallel plumb bi_med bi_biss
.related line point 
Milieux, parallèles, perpendiculaires, médiatrices, bissectrices

<img src="#palette/midpoint.png" border="1">  &nbsp; <img src="#palette/parallel.png" border="1"> &nbsp;  <img src="#palette/plumb.png" border="1"> &nbsp;<img src="#palette/bi_biss.png" border="1">  &nbsp; <img src="#palette/bi_med.png" border="1"> 

Ce sont des simples raccourcis pour des constructions classiques … qui pourraient même se faire à la règle et au compas seulement ! (en proposant aux élèves un menu restreint)

//**************************************
.bi_syma bi_symc bi_trans
.related macro
Transformations
  
<img src="#palette/bi_syma.png" border="1">  &nbsp; <img src="#palette/bi_symc.png" border="1"> &nbsp;  <img src="#palette/bi_trans.png" border="1"> &nbsp; 

Ce sont des transformations classiques qui ne nécessitent aucune explication particulière, si ce n'est celle-ci : non seulement elles s'appliquent aux points, mais également à tout type d'objet, comme les droites, cercles, lieux. L'image apparait en prévisualisation dès qu'on s'approche de l'objet à transformer. Cependant il peut arriver qu'on ait envie de construire l'image d'un point sur objet, plutôt que celle de l'objet tout entier ; dans ce cas il suffit, pendant la phase de prévisualisation, d'utiliser la touche "alt". Cette remarque vaut aussi pour toutes les <a href="#macro">macro-constructions</a>  pour lesquelles le dernier objet initial est un point, et dont l'unique objet final est un point également. 

//************************************
.line ray
.related segment fixedangle
Droites et demi-droites

Les droites peuvent être des parallèles, des perpendiculaires ou des droites définies par deux points. Une demi-droite peut être définie par deux points, ou être issue d'une utilisation de l'outil <a href="#fixedangle">angle fixe</a>.

//************************************
.segment fixedsegment
.related expressionsyntax point line
Segments et segments de longueur fixe

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/segment.png" border="0"></td><td class="comment2">Pour créer un segment il suffit de désigner deux points, ou de les créer "à la volée". On peut aussi créer un segment de longueur fixe en maintenant enfoncée la touche Maj tout en cliquant sur le second point. En demandant les propriétés d'un segment déjà créé, il est aussi possible de fixer sa longueur en demandant ses propriétés (clic-droit sur le segment).</td></tr>
<tr><td class="tds" width="40"><img src="#palette/fixedsegment.png" border="0"></td><td class="comment2">Lorsqu'on utilise cet outil "segment de longueur fixe", la barre de propriété apparaît automatiquement et vous permet d'entrer un nombre pour fixer sa longueur : ce "nombre" peut très bien être une <a href="#expression">expression </a> ! </td></tr>
</table>

//************************************
.vector
.related macro
vecteur

Une première méthode pour créer un vecteur, sachant aussi que dans les macros on trouvera d'autres méthodes pour les construire (définition par un bipoint, par coordonnées). Il est possible aussi, par macros, d'ajouter des vecteurs et de les multiplier par un réel.

//***************************************
.area
.related prop_polyline boundedpoint
Polygones

Pour créer un polygone, cliquer successivement sur chacun des sommets, en effectuant un double-clic sur le dernier (ou tout simplement en le fermant).

Ils peuvent avoir plusieurs <a href="#prop_polyline">apparences</a>.

Et leur <a href="#prop_thickness">bord</a> peut être plus ou moins épais.

Chaque polygone a un nom (par défaut du type polyi), mais ce nom est aussi son aire algébrique, et peut être utilisé dans n'importe quelle <a href="#expression">expression</a>. Pour un polygone non croisé ABCDE…, le signe ne dépend pas du tout d'un  éventuel "sens des aiguilles d'une montre", mais du signe de la mesure principale de l'angle des deux vecteurs BA et BC ; d'où l'intérêt d'utiliser dans certains cas des expressions du type <i>abs(polyi)</i>.

L'aire affichée dans la fenêtre grâce à la sélection de cette icône <img src="#palette/showvalue.png" border="1"> sera quant à elle toujours positive.

Si on construit un point <i>sur</i> un polygone, il est possible de demander à ce qu'il soit à l'intérieur de l'objet (enfermé par son périmètre). Cela se fait dans la barre de propriétés, en cochant la case "Dans l'objet" de l'onglet "Numérique".

//***********************************
.angle
.related properties fixedangle expression
Angles

Créer un angle, c'est d'abord créer un objet "décoratif" (dans la sens où il ne permet de rien construire géométriquement à partir de lui). Mais son nom (par défaut du type ai) c'est aussi sa mesure : on peut l'utiliser dans une <a href="#expression">expression</a>. Seule possibilité de construction géométrique : il est possible "d'attacher" un point à un angle par l'intermédiaire de la <a href="#properties">barre de propriétés </a>: son mouvement sera alors limité à l'aire délimitée par les deux côtés. Suivant la sélection (ou non) de cette icône <img src="#palette/obtuse.png" border="1" align="middle">, l'angle sera compris entre 0° et 180°, ou entre -180° et 180°.

Pour plus de détails sur les angles et leurs mesures on pourra regarder ce <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/angles/angles.htm">tutoriel internet</a>.


//**********************************
.fixedangle
.related circle expressionsyntax prop_angle
Angles fixes

Les angles fixes n'ont pas de troisième point, mais une taille fixée. Ce type d'angle ressemble plus à une demi-droite qu'à un angle : d'ailleurs on peut créer des intersections avec cette demi-droite, ou placer des points dessus.

A la création d'un tel angle, apparait un cadre numérique de la barre de propriétés : dans ce cadre on peut entrer un nombre fixe, un nombre dépendant d'un curseur, mais aussi toute sorte d'<a href="#expression">expression</a>.

Suivant la sélection (ou non) de cette icône <img src="#palette/obtuse.png" border="1" align="middle">, l'angle sera compris entre 0° et 180°, ou entre -180° et 180°.

Pour plus de détails sur les angles et leurs mesures on pourra regarder ce <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/angles/angles.htm">tutoriel internet</a>.

//************************************
.circle circle3 bi_circ bi_arc
.related prop_circleline point transparent fixedcircle
Cercles

Il existe dans CaRMetal 5 types d'objets circulaires :

<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/circle.png" border="0"></td><td class="comment2">Les cercles définis par centre et point.</td></tr>
<tr><td class="tds" width="40"><img src="#palette/fixedcircle.png" border="0"></td><td class="comment2">Les <a href="#fixedcircle">cercles fixes</a> définis par centre et rayon numérique.</td></tr>
<tr><td class="tds" width="40"><img src="#palette/circle3.png" border="0"></td><td class="comment2">Les cercles définis par rayon (défini par deux points) puis centre.</td></tr>
<tr><td class="tds" width="40"><img src="#palette/bi_circ.png" border="0"></td><td class="comment2">Les cercles passant par trois points.</td></tr>
<tr><td class="tds" width="40"><img src="#palette/bi_arc.png" border="0"></td><td class="comment2">Les arcs passant par trois points.</td></tr>
</table>

Tout cercle créé par l'un ou l'autre des quatre premiers outils peut se limiter à un arc de cercle. Il suffit de créer ou d'utiliser deux points A et B du cercle (les extrémités) ; puis d'accéder aux propriétés du cercle. Dans "numérique", on choisira "arc". Ce choix est en fait une bascule : "supp arc" redonne le cercle complet.

Et si on passe à l'onglet "aspect", ces arcs de cercles pourront être ou non orientés : il suffit d'utiliser cet outil-bascule  <img src="#palette/obtuse.png" border="1">. 


//***************************************
.fixedcircle
.related circle expressionsyntax properties point transparent
Cercles fixes

A la création d'un tel cercle, la barre de propriété s'ouvre alors automatiquement et il n'y a qu'à taper au clavier dans le cadre.

On peut entrer indifféremment un nombre ou une <a href="#expression">expression</a> dans ce cadre ; ou le <a href="#prop_name">nom d'un objet</a>, comme "c1/2", si c1 est le nom d'un cercle déjà construit, "s2/s1", si s1 et s2 sont les noms de deux segments existants.

Dans l'onglet "numérique" il est possible de ne plus cocher "fixe" : la taille du cercle peut alors être changée par un cliquer-glisser bouton droit à la souris (ou par un cliquer-glisser bouton gauche si entre temps on est passé au mode mouvoir par un "échap" par exemple).

//**********************************
.quadric
.related properties point transparent
Coniques

Les coniques sont déterminées par les solutions des équations formées par les commbinaisons linéaires de x^2, y^2,x , y et 1 (formes quadratiques de deux variables). C'est bien connu, ces coniques sont déterminées par 5 points. Pour créer de telles coniques, il suffit simplement de choisir 5 points.

Il est possible d'attacher des points à une conique, et de créer des intersections de coniques avec d'autres objets.

En affichant l'historique de la construction, il est possible de retrouver une équation de conique. Dans ce cas choisir "Show formula"

//*****************************************
.text
.related properties latex
Text

Cet outil permet d'afficher dans la construction un texte sur plusieurs lignes.

Un clic-droit sur un texte permet d'accéder à ses propriétés. On peut alors suivant l'onglet choisi modifier le texte lui-même, changer sa couleur, utiliser du conditionnel ou des calques.

En faisant précéder une ligne de *, **, ou *** on agrandit l'écriture.

Si on désire utiliser des commandes <a href="#latex">LaTeX</a>, il suffit d'inclure le texte entre deux $. De plus, il est possible d'encapsuler des expressions telles que Ei en écrivant %Ei% : ces expressions seront évaluées et le texte affichera leur valeur. Les chaînes de caractère de la forme %=s% retournent le nom courant de l'objet "s", et les chaînes de la forme %~s% retournent une équation de s.

Un <a href=http://db-maths.nuxit.net/CARzine/articles/art118/index.html>article CARzine</a> illustre bien le propos.

//************************************
.expression
.related fixedangle fixedcircle properties expressionsyntax selfreference
Expressions

Cet outil permet de placer une expression dans la fenêtre de travail. Lorsqu'on clique dans la construction, la barre de propriété est prête à recevoir une expression.

<img src="images/expression01.gif" border="1">
 Dans l'image ci-dessus, on affiche la longueur AB par l'intermédiaire d'une expression. Dans cet exemple taper d(A;B) dans le cadre "Exp" affiche la longueur AB seule, et entrer le commentaire "AB" fait apparaître le texte "AB=" devant celle-ci. Tout ce qui est entré dans le cadre texte définissant l'expression, pour que celle-ci soit valide, doit obéir à <a href="#expressionsyntax">certaines règles syntaxiques</a>. Le cadre "Commentaire" quant à lui peut recevoir n'importe quel texte, y compris <a href="#latex">du code LaTeX</a>.

Les expressions sont très utiles (cachées ou non) pour calculer des valeurs, afin de les
réutiliser plus tard dans la construction.

La valeur d'une expression peut aussi être fixée par un curseur. Pour cela, cocher la case "Curseur" de la barre de propriété et modifier éventuellement ses valeurs min et max (cadres de valeurs initiales -5 et 5).

//********************************
.expressionsyntax
.related fixedangle fixedcircle point properties function expression
Syntaxe pour les expressions

L'outil "expression" nécessite souvent l'utilisation de formules mathématiques. La syntaxe de telles formules se retrouve très facilement, car à droite de certains cadres d'entrée on trouve ce symbole : 

<img src="images/paraph.gif" border="0">

sur lequel il suffit de cliquer. Et en choisissant les fonctions prédéfinies on obtient :

<img src="images/fenetre.gif" border="0">

Par un simple clic les formules sont immédiatement insérées. Il y a les tests, les constantes, les fonctions mathématiques, les expressions géométriques.

<B>Tests</B>

<I>Booléens</I> : lorsqu'on met deux expressions de part et d'autre d'un symbole de relation comme ">", le résultat est une expression qui vaut 1 si la relation est vraie, 0 sinon : on parle d'expression booléenne, mais les nombres 0 et 1 sont considérés aussi comme des entiers qui peuvent être additionnés, divisés etc. Les relations possibles sont les suivantes : &lt; ; &gt; ; &lt= ; &gt= ; == (pour "égal à") ; &#126;= (pour "environ égal à", c'est à dire égal à 10<SUP>-10</SUP> près).

Exemples : "3&gt;4" donne 0, ainsi que "3==4" mais "3&lt;4" donne 1.

<I>Inside(P,c)</I> peut être considéré comme une expression booléenne, valant 1 si le point P est à l'intérieur du cercle c, 0 sinon (vaut aussi pour les polygones). Mais en fait c'est un peu plus, car cette expression vaut 1/2 si P est exactement sur le bord !

<I>Négation</I> : le point d'exclamation placé devant une expression booléenne (égale à 0 ou à 1)la soustrait à 1. Ce symbole joue donc le rôle de négation. Il effectue d'ailleurs une conversion en booléen selon la règle "tout ce qui n'est pas nul vaut un". Pour coder a&ne;b on écrit donc "!(a==b)".

<I>Conjonction</I> (le "et") : le symbole "ampersand" (&) dédoublé sert de conjonction entre expressions bolléennes. Il a le même effet que la multiplication, sauf qu'il convertit en booléen les expressions, permettant d'écrire "2&&3" pour 1. Si c1 et c2 sont deux surfaces (polygones ou disques), et P un point, la variable "inside(P,c1)&&inside (P,c2)" est égale à 1 si et seulement si le point P se trouve dans c∩c2 ce qui permet de gérer les diagrammes de Venn.

<I>Disjonction</I> (le "ou") : la disjonction entre booléens est représentée par un symbole "pipe " (|) lui aussi dédoublé ; p||q est donc nul si et seulement si p et q le sont tous les deux.

<I>if(  ,  ,  )</I> : le traditionnel if(&lsaquo;test&rsaquo;,&lsaquo;alors…&rsaquo;,&lsaquo;sinon...&rsaquo;).

<B>Constantes</B>

<I>Constante d'Archimède</I> : le nombre se note pi ou Pi.
  
<I>invalid</I> est le nombre qu'on obtient lorsque par exemple on cherche l'abscisse du point d'intersection de deux droites parallèles ou la racine carrée d'un nombre négatif. Ce n'est pas à proprement parler une constante ! Sauf qu'elle ne provoque pas d'erreur de syntaxe, et qu'on peut la citer pour rendre invalide une grandeur . Par exemple si un nombre est égal à "if(x(P1)>0;x(P1);invalid)", ce nombre vaudra l'abscisse de P1 sauf si P1 est à gauche de l'axe des abscisses, auquel cas ce nombre ne sera pas défini. Ce qui permet de faire de la géométrie conditionnelle (le modèle hyperbolique de Pointcaré est ainsi défini dans un demi-plan).

<I>windoww</I> est en unité, la demi-largeur de la fenêtre. Par exemple cette constante vaut 6 si les abscisses vont de -2 à 10. Elle se modifie à chaque zoom.

<I>windowh</I> est, en unité, la hauteur de la fenêtre. Elle vaut donc 12 si les
ordonnées vont de -4 à 8. Elle se modifie à chaque zoom.

<I>windowcx</I> et <I>windowcy</I> sont les coordonnées du centre de la fenêtre.

<I>pixel</I> est le nombre de pixels qu’il y a dans une graduation (sur chacun des axes : on rappelle que sous CaRMetal le repère est toujours orthonormé, ce qui garantit que les cercles ne ressemblent pas à des ellipses). Il se modifie à chaque zoom.

(exemple d'utilisation de ces quatre dernières "constantes" : créer un point B à une "distance" de A indépendante du zoom en écrivant x(B)=x(A)+12/pixel et y(B)=y(A) (B sera à 12 pixels de A vers la droite) ; ou encore x(B)=x(A)+windoww/18 et y(B)=y(A)+windowh/12. Les points "liés à la fenêtre", ou points "flottants", sont définis par ce genre de procédé, et c'est … fait en un seul clic).

<B>Fonctions mathématiques</B>

<I>random(x,b)</I> renvoie un nombre aléatoire compris entre 0 et x.
Si b vaut 0 (false), il n'y a pas de recalcul et le random n'est calculé qu'une seule fois. Si b vaut 1 (true) le random recalcule tout le temps (à chaque fois que quelque chose se passe dans la fenêtre).

random(x) est possible et équivaut à random(x,1) : bien évidemment on n'utilisera pas random (x,1) tel quel (recalcul chaque fois qu'il se passe quelque chose dans la fenêtre !) mais des expressions du type random(x,&lsaquo;test&rsaquo;), afin que le recalcul se fasse uniquement dans des conditions choisies.

Exemple d'utilisation : on commence par créer une <a href="#expression">expression</a> qui vaut 0, nommée "tps" et qui est destinée à être animée ultérieurement. On l'aura deviné, cette <a href="#animate">animation</a> est censée représenter un chronomètre (ou encore un compteur). Puis on crée l'expression : "floor(random(3;d(tps)~=1))", qui donne au hasard 0, 1 ou 2. L'expression (subtile) <a href=http://db-maths.nuxit.net/CARzine/articles/art91/index.html>d(…)</a>  étant en quelque sorte celle qui calcule une variation instantanée, notre expression sera recalculée chaque fois que le chronomètre (ou le compteur) augmente de 1. 

<I>sqrt(x)</I> représente la racine carrée de x. L'expression obtenue est indéfinie si x est négatif.

<I>abs(x)</I> désigne la valeur absolue de x. Par exemple ”abs(x(M))” désigne la distance entre le point M et l’axe des ordonnées. 

<I>sign(x)</I> désigne le signe de x, soit sign(x)=x/|x| (avec la convention sign(0)=0). Ses valeurs sont 1,-1 et 0.

<I>round(x)</I> désigne l'entier le plus proche de x, avec la convention habituelle d'arrondir au-dessus si la partie fractionnaire est 0,5 : round(2,5) vaut 3 et non pas 2.

<I>floor(x)</I> désigne l'entier immédiatement inférieur à x, soit sa partie entière si x est positif. Mais floor(-3,2) vaut -4 !

<I>ceil(x)</I> désigne l'entier immédiatement supérieur à x.Les fonctions floor et ceil implémentent donc des valeurs approchées à 1 près par défaut (floor) et par excès (ceil). Pour faire un arrondi à 0,001 près, on fait "round(100*x)/100".

<I>min(a,b)</I> : renvoie le plus petit des deux nombres a et b.

<I>max(a,b)</I> : renvoie le plus grand des deux nombres a et b.

<I>Les fonctions trigonométriques</I> sont : sin, cos, tan, arcsin, arccos, arctan. Elles fonctionnent avec les degrés !  Si x est en radian, on utilisera : rsin, rcos, rtan,  rarcsin, rarccos, rarctan. Autre possibilité : utiliser deg(x) qui convertit en degrés ou rad(x) qui convertit en radians. Ainsi : rsin(x)=sin(deg(x)). 

<I>angle180(x)</I> donne la mesure principale de x (donc entre -180 et 180).

<I>angle360(x)</I> donne la mesure équivalente à x comprise entre 0 et 360.

<I>exp(x)</I> désigne l’exponentielle de x

<I>log(x)</I> désigne le logarithme népérien de x.

<I>coshyp(x)</I> désigne le cosinus hyperbolique de x, c'est à dire (e<SUP>x</SUP>+ e<SUP>-x</SUP>)/2.

<I>sinhyp(x)</I> désigne le sinus hyperbolique de x, c'est à dire (e<SUP>x</SUP>- e<SUP>-x</SUP>)/2.

<B>Expressions utilisées en analyse</B>

Dans ce paragraphe, f désignera toujours une fonction définie soit par <img src="#palette/function.png" border="1">  soit par <img src="#palette/bi_function_u.png" border="1">.


<I>zero(f,a,b)</I> donne une solution de l'équation f(x)=0 sur l'intervalle [a;b]. Il est souhaitable, dans la mesure du possible, que f s'annule exactement une fois dans l'intervalle [a;b]. Sinon rero(f,a,b) est indéterminé.

<I>min(f,a,b)</I> donne la valeur de x pour laquelle f est minimale sur [a;b]. Le minimum est déterminé s'il n'est atteint qu'une fois sur l'intervalle [a;b].

<I>max(f,a,b)</I> donne la valeur de x pour laquelle f est maximale sur [a;b]. Le maximum est déterminé s'il n'est atteint qu'une fois sur l'intervalle [a;b].

<I>diff(f,x)</I> calcule le nombre dérivé de f en x. Si f est une fonction de plusieurs variables, le nombre dérivé est calculé par rapport à la variable x.

<I>integrate(f,a,b)</I> : intégre la fonction f de a à b en utilisant la méthode de Romberg.
Si f est en "points seulement", avec un "pas" à choisir, c'est la somme de Riemann (rectangles "inférieurs") qui est calculée. Si on désire la somme de Riemann (rectangles "supérieurs"), on créera l'expression <I>integrate(f)</I>, avec les bornes écrites cette fois dans la définition de f (comme "min" et "max"). Si f est une courbe paramétrée, integrate(f) (sans les bornes) donne l'aire algébrique qu'elle délimite.
 
<I>length(f)</I> donne la longueur (approchée) de la courbe de f laquelle peut être une fonction définie sur un intervalle par un "min" et un "max", en "points seulement" et avec un certain "pas" (limité à 0,0001), ou une courbe paramétrique (mêmes conditions) ou un lieu.
 
<I>d(x)</I> et <I>sum(x)</I> sont des fonctions réservées aux "experts" ! On trouve des explications détaillées à ce sujet soit dans ce <a href=http://db-maths.nuxit.net/CARzine/articles/art91/index.html>premier article internet</a>, ou encore <a href=http://revue.sesamath.net/spip.php?article154>celui-là</a>. 

<B>Expressions géométriques</B>

<I>x(A)</I> et <I>y(A)</I> désignent les coordonnées d'un point A. Si au lieu d'un point on utilise une droite (ou un segment, un vecteur) ces expressions renvoient les coordonnées d'un vecteur directeur de norme 1 de cette droite. Ainsi y(d1)/x(d1) est le coefficient directeur de la droite d1.

<I>d(A,B)</I> désigne la distance entre les deux points A et B.

<I>a(A,B,C)</I> donne une mesure en degrés de l'angle orienté formé par A, B et C (en fait celui formé par les vecteurs BA et BC). Cette mesure est par définition comprise entre 0° et 360°. Si  on désire la mesure principale (entre -180° et 180°) on utilisera "angle180(a(A,B,C))". Attention : si on a créé l'angle avec l'outil <a href="#angle">angle</a> mais sans choisir "angles supérieurs à 180°", l'expression obtenue (du type a1) correspond à un  angle non orienté, c'est à dire compris entre 0° et 180°. C'est pourquoi a(A,B,C) et cet a1 peuvent être différents …

//********************************
.image3
.related point background 
Insertion d'image 

On peut ajouter des images à la construction en temps qu'objets. Ces images utilisent soit deux points d'ancrage, soit trois. Dans le premier cas l'image subit un agrandissement ou une réduction, dans le second cas une transformation affine. Si vous désirez uniquement deux points, double-cliquez sur le second. Si on sauvergarde le fichier dans un classeur, l'image est encapsulée dans ce fichier au format zirs, donc réapparaîtra à l'ouverture du fichier.
 
//*******************************
.function parametricfunction bi_function_u 
.related expressionsyntax properties
Fonctions et courbes

<img src="#palette/function.png" border="1">  &nbsp; <img src="#palette/bi_function_u.png" border="1"> &nbsp;  <img src="#palette/parametricfunction.png" border="1"> 

sont les trois outils qui permettent de définir des fonctions ou de tracer des courbes (dans les deux premiers cas on parlera de "fonctions utilisateur"). Les fonctions utilisateur peuvent être composées avec les fonctions de base ou entre elles. Attention : chaque clic sur le premier ou le troisième crée l'objet voulu, donc il est vivement conseillé par un "échap" de passer au mode "mouvoir" après chaque création ( et de vérifier dans l'historique le nombre de fonctions qui ont été créées !).

Le premier permet la définition (accompagnée de la représentation graphique) d'une fonction d'une variable, ou d'une fonction paramétrée.

Le second crée des fonctions qui ne sont pas destinées à être représentées graphiquement, mais à être utilisées dans d'autres expressions. Ce sont des fonctions d'une, deux, trois ou quatre variables.

Le troisième permet la construction de courbes définies par leurs équations.

<i>Avec le premier outil</i>, et dans l'onglet numérique, on trouve ceci :

<img src="images/fonc01.gif" border="1">
Le min et le max ne sont pas obligatoires lorsque la courbe est représentée "en continu". Mais le deviennent lorsque la courbe est représentée en "points seulement" (onglet "aspect"), et dans ce cas évidemment on précisera le pas. A propos de ces fonctions il est possible d'évaluer certaines <a href="#expressionsyntax">expressions</a> (comme des longueurs ou des aires sous la courbe). Il aussi est possible d'attacher un point à la courbe représentative, et le point peut même être accompagné d'un "incrément" qui peut être ou non identique au pas choisi pour la courbe. 

Pour les fonctions paramétrées, le min, le max sont obligatoires. Le pas également, quand on décide de passer en points seulement. Un exemple simple : x(t)=rcos(t) ; y(t)=rsin(t) ; avec min=-pi, max=pi et pas=pi/6, le tout en mode points seulement. Intéressant à expérimenter : attacher un point libre à la "courbe" obtenue …  ce qui fait des fonctions paramétrées le deuxième outil préféré (après le magnétisme) pour faire de la géométrie finie. Un autre exemple de courbe paramétrée : x(t)=rsin(2*t) et y(t)=rsin(3*t) sur [-pi,pi], qui donne la courbe de Lissajous.

<i>Avec le dernier outil</i>, qui représente des courbes d'équations données, il est possible d'obtenir facilement des courbes de niveau. Exemple : si A est un point donné, chercher la courbe d'équation "sqrt((x-x(A))^2+(y-y(A))^2)-6=0".

//******************************************
.tracker
.related point animate mouse objecttracker
Traces

Il y a deux méthodes pour obtenir des traces d'objets. La première, celle qui passe par l'intermédiaire de la <a href="#properties">barre de propriétés</a>, se retrouve aussi dans d'autres logiciels de géométrie dynamique ; la seconde est un peu différente, et amène en principe à utiliser ensuite la trace automatique. 

<i>Première méthode</i> : un clic-droit sur un point, une droite, un segment ou un cercle vous donnera (dans l'onglet <i>aspect</i>)

<img src="images/trace.gif" border="1">

Il suffit alors d'un cocher/décocher pour activer ou non la trace que laissera un objet lors de son déplacement.

Cette trace est volatile ! Il suffit d'un simple zoom  ou d'une translation de la figure pour qu'elle disparaisse ; ou alors d'utiliser dans le menu déroulant <i>édition</i> : <i>effacer les traces</i> (raccourci clavier :    ou ⌘+T). Une autre option de ce même menu déroulant permettra de les désactiver (toutes à la fois s'il y en a plusieurs).

<i>Seconde méthode</i> avec : <img src="#palette/tracker.png" border="1"> (dans <i>Fonctions & lieux</i>)

Si c'est un point qui est choisi, il laissera sa trace sous forme de ligne continue, ligne de la même couleur que le point en question. Méthode : clic-gauche sur le point à déplacer, clic-gauche sur le point qui doit laisser sa trace, et enfin déplacement du point. Il est possible de laisser plusieurs traces simultanément : il suffit d'utiliser la touche shift à la sélection de tous ces points (sauf le dernier). Le point à déplacer peut très bien avoir des coordonnées qui dépendent d'une expression transformée en curseur. Ces traces sont insensibles aux zooms et translations de la figure ; mais disparaissent dès qu'on change d'outil. Pour qu'elles soient permanentes, on utilisera l'<a href="#objecttracker">outil trace automatique</a> ou l'<a href="#locus">outil lieu</a>.

Si c'est une droite qui est choisie (ou une demi-droite ou un segment), sa "trace" sera tout simplement l'enveloppe de cette droite.

//***********************************
.objecttracker
.related tracker point animate
Traces automatiques de points ou de droites

Cet outil dessine les traces de points ou de droites (comme le fait l'<a href="#tracker">outil trace</a>) mais ces traces dépendent cette fois d'un point animé placé sur une ligne (droite ou segment) ou un cercle.

(Remarque importante : un outil plus simple d'emploi ressemble beaucoup à celui-ci : c'est l'outil lieu. Lequel utiliser ?
L'outil lieu est plus facile à utiliser et demande moins de recalculs lorsqu'on modifie la figure de façon dynamique : c'est lui qu'on préfèrera la plupart du temps. Tandis que l'outil trace automatique fonctionne différemment : la figure est d'abord animée, puis éventuellement se construit le lieu. Il convient très bien à des constructions un peu sophistiquées genre "systèmes articulés", comme expliqué ci-dessous …). 

Donc pour notre outil trace automatique, on commence par choisir le ou les points ou lignes dont on aimerait la trace. Dans le cas des lignes, on obtiendra une enveloppe de droites. De même que pour l'<a href="#tracker">outil trace</a>, il est possible de choisir plusieurs objets dont on aimerait garder la trace (il suffit de le faire avec la touche shift enfoncée, sauf pour le dernier objet). Puis on choisit une <a href="#expression">expression</a> transformée en curseur, ou une ligne ou un cercle : dans ce cas on choisira aussi un point sur cette ligne ou ce cercle.

Voici un <a href="http://zirkel.sourceforge.net/doc_en/Data/Applications/Geometrical%20Curves/Circle%20and%20Circle.html">premier exemple</a> (auteur : René Grothmann)

<img src="images/systeme.gif" border="1">

Les deux cercles noirs sont de centre fixe et de rayon fixe ; m est un point variable du premier ; le cercle rouge est également de rayon fixe, tandis que I est un milieu. On recherche la trace automatique de I.
A observer : si le premier objet dont on cherche la trace devient invalide à cause d'une intersection invalide, le mouvement change de sens automatiquement. Si c'est à cause d'un point d'intersection entre deux cercles qui n'existe plus, c'est l'autre point commun qui sera choisi quand le mouvement du point mobile change de sens. Ainsi la construction fonctionnera dans tous les cas de figure.

On pourra aussi regarder ce <a href="http://zirkel.sourceforge.net/doc_en/Data/Applications/Geometrical%20Curves/Circle%20and%20Line.html">second exemple</a> (créé également par René Grothmann). 

Des clic-gauche répétés font passer l'animation en 3 modes : animation avec trace, animation avec trace cachée, trace sans animation. Dans le dernier mode le point mobile peut être déplacé à la souris. Tous les autres points peuvent être déplacés avec le bouton droit, mais alors la trace devient cachée et toute animation est stoppée.

Si une construction est enregistrée quand cet outil est actif, il restera actif à la réouverture du fichier.

Pour arrêter l'animation et effacer les traces, il suffit de changer d'outil, ou d'utiliser <i>échap</i>. Mais il est également possible de conserver les traces dans la figure, comme expliqué ci-dessous. 

Pour transformer une trace en un objet (permanent), il suffit pendant l'animation de taper "Shift+enter". Un nouvel objet sera créé, et pourra être édité dans la barre de propriétés comme n'importe quel autre objet. Il devient alors possible d'attacher des points à ces traces, et de les utiliser dans des intersections.

//**************************************
.locus
.related tracker objecttracker
Lieux et enveloppes

Cet outil permet aussi bien la recherche de lieux de points que celle d'enveloppes de droites. Voici un exemple pour chacun des cas :

<img src="images/ellipse.jpg" border="1">

A et B sont donnés, m est sur un cercle de centre A. La médiatrice de B et m coupe le segment [Am] en p. Quel est le lieu de p (clic sur p) quand sur le cercle varie le point m (clic sur m)? Autre méthode, avec un point m qui serait libre cette fois : quel est le lieu de p (clic sur p) si sur le cercle (clic sur le cercle) variait le point m (clic sur m) ? Le lieu obtenu, comme tous les autres lieux,  est un objet CaRMetal à part entière : on peut y placer des points, l'utiliser dans des intersections ...

<img src="images/parabole.jpg" border="1">

m est un point de la droite h, F un point fixe (le foyer comme chacun l'aura deviné) ; d est la médiatrice du segment [Fm]. Quelle est l'enveloppe de la droite d (clic sur d) quand sur la droite h varie le point m (clic sur m) ? Même remarque que précédemment : si m est libre il faut trois clics : sur d, sur h et sur m. Pour la beauté du résultat, on aura pris soin auparavant d'activer la trace de la droite (clic-droit sur la droite pour accéder à ses propriétés).

Autre fonctionnalité : sont possibles les lieux, mais aussi les lieux de lieux (et même les lieux de lieux de lieux etc)! Un exemple à tester :

<img src="images/LieuDeLieu.jpg" border="1">

En noir : la parabole de foyer F et de directrice d. Le cercle est centré en F, m est un point de la parabole ; p est l'inverse de m par rapport au cercle (la macro "inverse" le donne rapidement). Quel est le lieu de p (clic sur p) quand sur la parabole varie m (clic sur m) ? (on obtient une superbe cardioïde)

//******************************
.bi_t_align bi_t_app bi_t_conf bi_t_equi bi_t_para bi_t_perp
.related expressionsyntax prop_conditionals
Tests

L'utilisation de ces outils ne nécessite aucune explication particulière. Simplement on signalera qu'en interne ils utilisent des booléens avec <a href="#expressionsyntax">~=</a> (pour "environ égal à", c'est à dire égal à 10^(-10) près). 

//******************************
.slider
.related ctrl_slider
Curseurs

On utilise le plus couramment  trois types de curseur :<ul>
	<li>les curseurs issus d'une <a href="#expression">expression</a>. Ce sont des curseurs continus. Avantage : il est possible de "décursoriser" (il suffit de décocher "curseur"). Il est aussi possible de créer des lieux qui en dépendent (pas avec l'outil lieu à proprement parler, mais avec son cousin, l'outil trace automatique). </li>
	<li>les <a href="#ctrl_slider">curseurs système</a>. Ils sont très souples d'utilisation, esthétiques. Mais ils ne permettent pas la "décursorisation" (c'est à dire d'imposer n'importe quelle valeur exacte à la variable), et on ne peut pas créer des lieux qui en dépendent.</li>
	<li>les curseurs linéaires continus, qui se fabriquent avec une macro (catégorie "experts", puis "curseurs"). Contrairement aux curseurs système, ils permettent la création de lieux qui en dépendent. </li>
</ul>
Un <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/curseur_controle/curseur_controle.htm">tutoriel internet</a> donne des explications plus détaillées à propos de l'utilisation des deux derniers types de curseur.

//******************************
.ctrl_edit ctrl_slider ctrl_button ctrl_chkbox
.related gui
Curseurs système 

Ces cinq contrôles créent en fait directement des expressions (parfois booléennes), bien commodes à utiliser. Elles sont nommées par défaut a, b, c, etc  (et visibles aussi dans l'historique).
<table width="100%" cellspacing="4" cellpadding="2">
<tr><td class="tds" width="40"><img src="#palette/ctrl_edit.png" border="0"></td><td class="comment2">C'est l'outil qui permet d'éditer, de déplacer et redimentionner chacun des cinq contrôles suivants. Un bon réflexe à acquérir : un "échap" quand c'est terminé, pour passer au mode mouvoir ... </td></tr>
<tr><td class="tds" width="40"><img src="#palette/ctrl_slider.png" border="0"></td><td class="comment2">C'est le curseur système traditionnel. Un <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/curseur_controle/curseur_controle.htm">tutoriel internet</a> donne des exemples d'utilisation de ce type de curseur.</td></tr>
<tr><td class="tds" width="40"><img src="#palette/ctrl_popup.png" border="0"></td><td class="comment2">Un second <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/menu_deroulant/menu_deroulant.htm">tutoriel internet</a> donne un exemple de création d'un tel menu déroulant.</td></tr>
<tr><td class="tds" width="40"><img src="#palette/ctrl_chkbox.png" border="0"></td><td class="comment2">Ce contrôle crée en fait une expression qui vaut 1 ou 0, suivant que la case est cochée on non.</td></tr>
<tr><td class="tds" width="40"><img src="#palette/ctrl_txtfield.png" border="0"></td><td class="comment2">tandis que celui-ci crée une expression qui vaut 1 la première fois, et ensuite n'importe quelle valeur inscrite dans la boîte d'entrée. Un <a href=http://db-maths.nuxit.net/CaRMetal/Nouveautes/Versions/version_2.9.7.html">tutoriel internet</a> (suivi d'un lien vers un riche diaporama) illustre abondamment l'utilisation de ce contrôle.</td></tr>
<tr><td class="tds" width="40"><img src="#palette/ctrl_button.png" border="0"></td><td class="comment2">Chaque clic sur le OK obtenu fait passer l'expression sous-jacente de 0 à 1 ou de 1 à 0. Il suffit de créer une nouvelle expression dont la valeur est le nom de ce contrôle pour voir ce qui se passe.
</td></tr>
</table>

//************************************
.macro
.related point expression selfreference
Macro-constructions

Quand une même construction est appelée à être renouvelée plusieurs fois, il est bien commode d'en faire une macro. Après avoir effectué cette construction une première fois, il suffit de choisir les objets initiaux, puis les objets finaux et d'enregistrer la macro : à l'exécution de la macro tous les objets intermédiaires seront automatiquement reconstruits (mais resteront cachés). Un <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/macros_base/macros_base.htm">premier tutoriel internet</a> donne la méthode pour créer puis enregistrer un telle macro.

Il existe un inspecteur d'objets, mais il existe aussi un "inspecteur de macros" qui permet de modifier certaines propriétés des objets initiaux : certains peuvent être (ou non) "à la demande" ; et d'autres peuvent devenir "implicites", c'est à dire non redemandés à chaque utilisation. Un <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/macros_expert/macros_expert.htm">second tutoriel internet</a> donne la méthode à utiliser.

Il y a les macros "de bibliothèque" toujours disponibles à l'ouverture du logiciel, ainsi que les macros "de fichiers" qui sont encapsulées dans un fichier enregistré (et qui resteront disponibles dans l'applet correspondante). Elles sont toutes organisées  de façon très intuitive, un peu comme les marque-pages d'un navigateur ou comme la librairie de iTunes par exemple : ajout de nouveaux dossiers, de nouvelles macros, organisation par drag and drop ... Un <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/gestion_des_macros/gestion_des_macros.htm">troisième tutoriel internet</a> donne les renseignements voulus.

<i>Remarque</i> : dans les objets initiaux d'une macro, on a intérêt si possible à donner un point comme dernier objet initial, parce que dans ce cas les objets finaux apparaissent en prévisualisation lors de l'éxécution de la macro. Bien plus, si une macro-construction a pour dernier objet initial un point, et pour unique objet final un point également, non seulement elle s'applique aux points, mais également à tout type d'objet, comme les droites, cercles, lieux (mais si on désire l'appliquer à un point sur objet plutôt qu'à l'objet tout entier, il suffit pendant la phase de prévisualisation d'utiliser la touche "alt".

<i>Trois autres remarques</i> (plutôt réservées aux "experts"):

a) il est possible de ne pas choisir d'objets finaux ! dans ce cas c'est toute la construction qui sera restituée à l'éxécution de la macro. Mais, la remarque est importante : l'aspect, la couleur et l'épaisseur des  éléments obtenus seront ceux qui ont été utilisés lors de l'enregistrement de la macro, même si entre temps il y a eu des changements à ce sujet.

b) il est possible de choisir des objets initiaux cachés (la baguette magique étant activée, évidemment). Un exemple : imaginons une macro pour compléter un triangle équilatéral de sommets A et B, un simple clic donnant alors le demi-plan où se situera le troisième sommet. Il suffit de créer un point P (caché), puis une expression du style "60*sign(180-a(P,A,B))" pour ensuite créer un angle fixe et enfin le sommet voulu. Initiaux de la macro  : A, B et P (macro à faire fonctionner baguette magique désactivée).

c) dans certains cas, on peut avoir besoin d'utiliser comme objet initial un élément auto-référent (les points "liés à la fenêtre" sont de ceux-là). Dans ce cas, à la création de la macro, cet objet sera choisi avec la touche shift enfoncée. Exemple d'utilisation : une macro peut très bien avoir comme objet final un texte, une expression (ou un ensemble de textes et d'expressions) ; on créera alors un point caché "lié à la fenêtre" (supposons qu'il s'appelle P1), et par l'intermédiaire de ses propriétés on donnera à ce texte (ou cette expression) les coordonnées x(P1) et y(P1) ; et lors de la fabrication de la macro (baguette magique activée) on veillera à ce que P1 soit le dernier objet initial.

//**************************************
.macroerror
.related macro
Avertissement : "Object is used, but not in Macro"

Ce message apparait si la macro fait appel à un objet non contenu dans la macro. Habituellement, la raison est une auto-référence dans une expression, peut-être aussi un format conditionnel d'objet. Ces références font que les objets ne dépendent pas des objets référés, et par conséquent les objets sont encore constructibles. Cependant ils pourraient ne pas fonctionner comme on l'attend, ou pourraient même référer à de mauvais objets quand on les utilise.

Un autre type d'auto référence sont les arcs attachés à des cercles. Si vous ignorez l'avertissement, l'arc sera déterminé par des objets de même nom.

Une troisième raison, c'est peut être les intersections avec des cercles. Pour choisir une intersection, cette intersection doit être <i>loin d'</i>un point donné. Ce qui pourrait arriver automatiquement si l'autre intersection existe encore. Si vous ignorez l'avertissement, l'intersection pourrait être gardée loin d'un point de même nom, ou devenir une intersection non contrainte.

Pour éviter l'avertissement, ajouter l'objet manquant aux objets initiaux, ainsi il sera contenu dans la macro.

// j'ai traduit assez mot à mot, sans toujours comprendre vraiment !!!!!!!!

//This warning occurs if an object in the macro refers to an object not
//contained in the macro. Usually, the reason is a __@...__ reference in
//an expression, maybe in the conditional formatting of objects. Those
//references do not make objects depend on the referred object, and thus
//the objects are still constructable. However, they might not work as
//expected, or might even refer to wrong objects when used.

//Another type of references are the bounds of __arcs__. Since those
//bounds depend on the circle most of the time, the circle arc cannot
//depend on the bounds to avoid circular dependencies. If you ignore the
//warning, the arc will be determined by objects with the same name.

//A third reason may be the __intersections__ with circles. To choose the
//intersection, the intersection may be kept __awayßfrom__ a given
//point. This might happen automatically, if the other intersection
//already exists. If you ignore the warning, this intersection will be
//kept away from a point with the same name, or will become an
//unrestricted intersection.

//To avoid the warning, add the missing object to the parameters, so that
//it is included in the macro.

//********************************
.construction
.related hide reorder
Historique

Il est possible d'afficher un historique, en ouvrant le panneau de gauche (clic sur l'outil-bascule de gauche) :

<img src="images/historique1.gif" border="0">
panneau dans lequel on choisira l'onglet du milieu :

<img src="images/historique2.gif" border="0">

On remarquera d'abord le point d'interrogation : en cliquant dessus, il devient possible de basculer entre 3 modes d'affichage, soit la description, soit les coordonnées, soit l'équation. On remarquera aussi qu'il est possible de n'afficher que certaines catégories d'objets : que les droites, que les cercles, etc. Ce qui est bien commode par exemple pour effectuer une recherche ciblée ; ou pour changer la couleur de toute un liste de points en même temps (le "shift" classique permettant la sélection multiple, suivi d'un clic-droit dans la zone sélectionnée).

Autre remarque : un clic-droit dans une zone vide du panneau de l'historique, et il devient possible de cocher/décocher :
<ul>
	<li><i>objets visibles</i> - décocher cette option est le seul moyen d'accéder aux objets <a href="#hide">super-cachés</a> (on rappelle que les objets simplement cachés sont un peu plus pâles, tandis que les super-cachés sont en plus entre parenthèses).</li>
	<li><i>tri par ordre de construction</i> - l'ordre de construction n'est pas nécessairement l'ordre dans lequel les différents objets seront chargés à l'ouverture du fichier. En effet, dans une construction il est possible de faire des post-références, et le programme peut changer l'ordre des objets, afin de s'assurer qu'aucun objet ne réfère à un autre objet défini aprés lui.</li>
</ul>

Un simple-clic (gauche) sur une ligne de l'historique, et l'objet correspondant de la construction "flashe".

Un double-clic gauche sur une ligne de l'historique, ou sur une sélection multiple (par ctrl ou shift) et on accède en plus à la <a href="#properties">barre de propriétés</a> de l'objet (ou des objets).

Ou encore : un clic-gauche pour sélectionner, suivi d'un clic-droit, et là on peut non seulement modifier l'objet (c'est à dire accéder à ses propriétés), mais aussi le cacher, le super-cacher, le supprimer etc.

//******************************

.tips
.related online browser start move intersection expression reorder
Astuces

Dans cette partie de l'aide contextuelle, nous allons vous donner quelques astuces pour résoudre quelques problèmes courants.

Constructions invalides. Pour tester une construction, déplacez un des points de base. Si la construction ne reste pas valide, la raison la plus courante est que vous n'avez pas choisi correctement une intersection. Vous avez peut-être construit une droite qui passe par un point d'intersection choisi au hasard.

Mauvais point d'intersection. Si une construction devient invalide, chaque fois que l'ordre des points de base est changé ou si un point (d'intersection) saute sur un autre, vous êtes confronté au problème du choix du bon point d'intersection. Alors, si vous voulez que votre construction reste valide dans tous les cas de figure, assurez vous que vous avez choisi tous les points d'intersection correctement. Si la sélection automatique du logiciel échoue, vous pouvez choisir l'intersection à la main. Dans la <a href="#properties">barre de propriétés</a>, choisissez "près de" ou "loin de". Choisissez alors un point qui serait plus proche ou plus éloigné du point d'intersection. Vous pouvez aussi choisir l'intersction proche d'elle même. Dans ce cas, l'intersection se comportera de façon continue. 


//********************************
.keyboard
.related gui macro
Utilisation du clavier

Quelques commandes CaRMetal ont des raccourcis clavier.

Le clic-droit dans la fenêtre donne accès aux macros de la bibliothèque.

La touche return annule la dernière construction. Les touches + ou - permettent le zoom in et le zoom out ; et les touches directionnelles permettent le déplacement de la figure. De plus F1 ouvre l'aide contextuelle.

Important : "échap" permet de sortir de l'outil courant et fait passer automatiquement au mode mouvoir.

Notez aussi que les touches Ctrl et Shift changent le comportement de certains outils.

//******************************
.slider
.related ctrl_slider
Curseurs

On utilise le plus couramment  trois types de curseur :<ul>
	<li>les curseurs issus d'une <a href="#expression">expression</a>. Ce sont des curseurs continus. Avantage : il est possible de "décursoriser" (il suffit de décocher "curseur"). Il est aussi possible de créer des lieux qui en dépendent (pas avec l'outil lieu à proprement parler, mais avec son cousin, l'outil trace automatique). </li>
	<li>les <a href="#ctrl_slider">curseurs système</a>. Ils sont très souples d'utilisation, esthétiques. Mais ils ne permettent pas la "décursorisation" (c'est à dire d'imposer n'importe quelle valeur exacte à la variable), et on ne peut pas créer des lieux qui en dépendent.</li>
	<li>les curseurs linéaires continus, qui se fabriquent avec une macro (catégorie "experts", puis "curseurs"). Contrairement aux curseurs système, ils permettent la création de lieux qui en dépendent. </li>
</ul>
Un <a href=http://db-maths.nuxit.net/CaRMetal/tutoriels/curseur_controle/curseur_controle.htm">tutoriel internet</a> donne des explications plus détaillées à propos de l'utilisation des deux derniers types de curseur.

//**************************************
.animate
.related circle segment expression
Animation

(A améliorer ?)
Avec cet outil il est possible d'animer un point sur objet (<a href="#segment">segment </a>, <a href="#circle">cercle</a>, <a href="#circle">arc </a>). Il est aussi possible d'animer une <a href="#expression">expression </a> (pour simuler le temps par exemple). Plusieurs animations peuvent être lancées simultanément. Dès qu'une ou plusieurs animations sont lancées, différents réglages sont possibles grâce aux items du menu déroulant qui apparaît dans le coin gauche de la fenêtre :

<img src="images/animation.png" border="0">

<b>Remarque très importante</b> : contrairement à d'autres logiciels de géométrie dynamique, lancer une animation n'est pas utiliser un mode bloquant ! Car dès qu'une animation est lancée, elle continue à tourner en tâche de fond même et surtout si on change d'outil pour continuer à construire, si on utilise une macro etc.

//************************************
.restricted beginner
.related iconbar
Palette restreinte

-- A FAIRE --

//***********************************

.htmlexport
.related runningdemo save comment exportdialog jobexport
html Export

- A FAIRE -

//*************************************
.assignments
.related assignments htmlexport
Exercices

Les exercices sont des constructions incomplètes, que l'utilisateur est supposé terminer. L'ordinateur  suggérera éventuellement l'objet cible de la construction, et sa solution peut très bien être différente de la solution proposée. Toute solution juste (ou fausse) se terminera par un message. 
Un <a href="http://db-maths.nuxit.net/CaRMetal/tutoriels/Exercices/Exercices.htm">tutoriel internet</a> vous explique la façon de procéder.
Un <a href="http://www.reunion.iufm.fr/recherche/irem/spip.php?article347">article</a> très complet (site IREM de la Réunion) vous donnera également de nombreux renseignements.


//**************************************

.new save savedis
.related assignments htmlexport  
Sauvegarde et ouverture de fichiers

A FAIRE !

//**************************************
.selfreference
.related macro point expression
Auto référence

Un point peut être défini par une référence circulaire, c'est à dire défini en fonction de lui-même ! Premier exemple très simple : créer un point M de coordonnées x(M) et y(M)^2 (il peut être intéressant d'activer sa trace). On dira alors que le point est auto-référent.

Autre exemple (historique), expliqué <a href=http://db-maths.nuxit.net/CARzine/articles/art114>ici</a> dans un article vraiment subtil : c'est celui des points flottants, autrement dit des points "liés à la fenêtre". Cette transformation en point flottant a d'abord été une macro, mais c'est maintenant encore plus simple  : il suffit d'accéder aux propriétés du point, onglet "numérique" et de cocher ici :

<img src="images/LieALaFenetre.gif" border="0"> 

Remarque : le grand intérêt de ces points flottants c'est de pouvoir "partager" une figure en deux parties, qui sont dépendantes numériquement mais se translatent ou tournent indépendamment l'une de l'autre  (film : à faire)

<b>Pour aller plus loin </b>: 

Quand on consulte l'historique de certaines figures, il peut arriver que dans des coordonnées figurent des @ : alors on sait qu'il s'agit là de points auto-référents. En effet la syntaxe pour l'écriture des coordonnées de tels points est la suivante :

<i>Pour qu’on puisse déplacer un point dont les coordonnées sont des formules récursives, il faut que :</i>
<i><li>dans ces formules toutes les références à d’autres objets soient précédées d’un @,</li></i>
<i><li>que le point lui-même apparaisse dans ces formules, sans @ (soit dans l’abscisse, soit l’ordonnée, par exemple – s’il n’intervient pas – avec un + 0*x(A)).</li></i>

Pour plus de détails et d'exemples on pourra lire ce <a href=http://www.reunion.iufm.fr/recherche/irem/spip.php?article40>premier article</a>.

Les références circulaires sont possibles dans les coordonnées de points, mais aussi dans l'écriture des expressions, comme l'illustre ce 
<a href=http://www.reunion.iufm.fr/recherche/irem/spip.php?article98>second article</a>.








