Les nouvelles technologies pour l’enseignement des mathématiques
Intégration des TICE dans l’enseignement des mathématiques

MathémaTICE, première revue en ligne destinée à promouvoir les TICE à travers l’enseignement des mathématiques.

Exégèse de CaRMetal

CaRMetal n’est pas un logiciel de géométrie dynamique comme les autres. Ses approches fondamentales sont originales et très avancées. Cela lui donne un intérêt remarquable mais le rend plus difficile à appréhender. Cet article propose d’expliciter ces approches en s’appuyant sur une comparaison avec GeoGebra (dont les approches sont plus classiques).

Article mis en ligne le 26 décembre 2013
dernière modification le 3 février 2014

par Patrice Debrabant

Introduction

CaRMetal est un logiciel de géométrie dynamique qui dérive de C.a.R.
Son ergonomie remarquable lui vaut des inconditionnels, mais ses approches fondamentales (qui sont en fait celles de C.a.R) peuvent troubler, d’autant qu’elles n’ont jamais, à ma connaissance, été explicitées (leur auteur, Réné Grothman, ayant le génie abrupt).
C’est ce que je propose de faire dans cet article.

Retour aux sources

Commençons par une question naïve : qu’est-ce qu’un logiciel de géométrie dynamique ?
C’est un logiciel de géométrie dans lequel certains éléments sont dynamiques.

En pratique, dans beaucoup de logiciels, seuls les points sont réellement dynamiques et les autres objets dynamiques empruntent leur dynamisme aux points (on déplace dynamiquement un cercle comme on déplacerait un point).
Mais dans C.a.R, René Grothman a tenté de rendre dynamiques tous les éléments qui pouvaient l’être. Et cette idée gouverne tout le logiciel et son interface.

Examinons le problème suivant :
On veut trouver par tâtonnements le cercle inscrit dans un polygone quelconque.
Dans CaRMetal, on peut construire un cercle de rayon donné et laisser son rayon dynamique pour trouver expérimentalement le cercle inscrit. Le centre du cercle et son rayon soit modifiables dynamiquement, on approche facilement le cercle.
Cette manipulation n’est pas possible dans GeoGebra (il faudrait utiliser un cercle passant par un point et bouger le point, c’est beaucoup moins fluide).

Dans CaRMetal, on a une géométrie plus dynamique car le logiciel est conçu d’emblée pour maximiser le dynamisme de ses éléments.
On peut bien-sûr se poser la question légitime de l’utilité de ce dynamisme, mais d’un point de vue théorique l’approche de CaRMetal est conceptuellement plus riche.

Prenons un autre exemple : celui du segment.
Dans GeoGebra, il y a deux outils distincts : l’outil segment et l’outil segment de longueur fixe.
Dans CaRMetal, il y a en fait un seul outil dynamique beaucoup plus avancé (la présence de deux icônes dans l’interface est un leurre, ce point sera expliqué plus bas).

Pour être plus précis, et montrer comment cette idée s’incarne dans l’interface de CaRMetal, on va passer en revue quelques outils constructeurs et les organiser logiquement.

Analyse des outils constructeurs de CaRMetal

1) l’outil cercle de rayon donné :

Il s’agit d’un objet-type de CaRMetal, qui incarne parfaitement les approches fondamentales du logiciel et peut servir de modèle.

Examinons d’abord l’objet équivalent de Geogebra, cela permettra de comprendre la spécificité de CaRMetal.
Cet objet Geogebra se construit par boîte de dialogue et a un dynamisme hérité de celui du point. L’option fixe (dans les propriétés du cercle) le rend non modifiable dynamiquement (seul le centre reste dynamique).

Il en va tout autrement dans CaRMetal.
Notons d’abord la subtilité du geste créateur :
Il n’y a pas de boîte de dialogue. On trace, puis on ajuste si nécessaire dans la barre de propriété (qui est activée très opportunément).
Si on clique, on crée un cercle « non dynamique » (dont l’option fixe est validée). Si on clique-glisse, on crée un cercle « dynamique » (dont l’option fixe n’est pas validée).
Mais de quel dynamisme s’agit-il ici ?
Il s’agit en fait du dynamisme du rayon (qui est un dynamisme « inattendu »).
Si le cercle est « dynamique », on peut modifier dynamiquement le rayon.
Si le cercle n’est pas dynamique, on ne peut pas modifier dynamiquement le rayon, et c’est le dynamisme de point qui s’impose (on obtient un cercle dynamique de GeoGebra !).

Il y a donc une cascade de deux dynamismes dans CaRMetal là où il y a un seul dynamisme dans GeoGebra.

2) l’outil angle de mesure donnée :

Dans Geogebra, l’outil équivalent n’a aucun dynamisme (et n’a pas d’option fixe). Il crée/sollicite trois points. On s’en remet au dynamisme des deux premiers points.

Dans CaRMetal, l’outil se comporte comme le cercle de rayon donné et répond aux mêmes gestes. Il crée/sollicite deux points.
Si on clique, on crée un angle « non dynamique » (dont l’option fixe est validée). Si on clique-glisse, on crée un angle « dynamique » (dont l’option fixe n’est pas validée).
Il s’agit bien-sûr du dynamisme de la mesure (qui est un dynamisme « inattendu »).
Si l’angle est « dynamique », on peut modifier dynamiquement la mesure.
Si l’angle n’est pas dynamique, on ne peut pas modifier dynamiquement la mesure, et c’est le dynamisme des deux point qui s’impose (c’est le comportement unique de Geogebra).

3) l’outil segment de longueur donnée :

Annonçons d’emblée la couleur : dans CaRMetal, il ne s’agit pas d’un outil segment particulier. C’est l’outil segment !

Là encore, examinons d’abord l’objet équivalent de GeoGebra :
Il y a deux outils :

  • le segment ;
  • le segment de longueur fixe.

Ces deux outils sont différents : si on valide l’option fixe de l’outil segment, on n’obtient pas un segment de longueur fixe, mais un segment que l’on ne peut pas modifier dynamiquement (ses extrémités seules restant modifiables dynamiquement sans contrainte).

Il en va tout autrement dans CaRMetal.
En effet, il n’y a qu’un seul outil (qui couvre les deux cas) et cet outil a un dynamisme inattendu sur la longueur.
Cet outil fonctionne de façon parfaitement cohérente comme le cercle de rayon donné :
Si on clique, on crée un segment « non totalement dynamique » (dont l’option fixe est validée). Si on clique-glisse, on crée un segment « totalement dynamique » (dont l’option fixe n’est pas validée).
Il s’agit par ailleurs d’un segment orienté (qui correspond à un bipoint orienté), manipuler un segment non orienté poserait un problème d’ambigüité -en particulier pour les macros-, et c’est un segment orienté qui est implémenté, ce qui justifie l’icône asymétrique.

De quel dynamisme s’agit-il ici ?
Il s’agit bien-sûr du dynamisme de la longueur.
Mais un problème de manipulation survient : peut-on implémenter une modification de la longueur du segment par une manipulation sur le segment lui-même ?
On pourrait l’imaginer mais ce serait très compliqué et alambiqué.
L’auteur s’est donc « contenté » d’un dynamisme par manipulation des extrémités (mais c’est un dynamisme « inattendu » de longueur de segment).
Si l’option fixe est cochée, c’est ce dynamisme qui s’impose au lieu du dynamisme de point.
Mais si l’option fixe est décochée, on obtient un segment libre identique à celui que l’on construirait avec le premier outil segment à l’icône rassurante (qui est donc redondant).

Attardons-nous un peu sur l’option fixe cochée, cela mérite l’attention :
Dans GeoGebra, l’outil équivalent est l’outil segment de longueur fixe qui exerce le même type de dynamisme sur les extrémités. Mais dans GeoGebra, on a un dynamisme sans grand intérêt : une extrémité est fixe et l’autre se déplace sur un cercle.
Dans CaRMetal, les extrémités se déplacent rivées à une tige tractrice (de longueur fixe). L’outil, qui n’existe à ma connaissance que dans CaRMetal et dans TracenPoche [1], permet donc de tracer des tractoires. C’est conceptuellement beaucoup plus intéressant.

J’ai dit que le premier outil segment dans CaRMetal était redondant, et qu’il n’avait pas lieu d’être.
Pourquoi alors l’avoir conservé dans l’interface ?
Parce que c’est un outil pour débutants, qui a le mérite d’être reconnu et de créer un segment libre. Mais cet outil n’est pas cohérent :

  • son icône laisse penser que le segment n’est pas orienté (ce qui est faux) ;
  • son comportement n’est pas cohérent : l’outil crée systématiquement un segment dont l’option fixe est décochée (il ne respecte pas la convention des gestes cliquer et cliquer-glisser).

Malgré ces griefs, on comprendra que l’outil ait été maintenu dans l’interface.

Remarque : ce « problème » de segment orienté n’est pas propre à CaRMetal. C’est juste la très grande cohérence de CaRMetal qui le met en relief.

Applications

1) L’escargot de Pythagore

En guise d’application (sans prétention) de l’outil segment, créons un escargot de Pythagore en utilisant une macro.

On commence par analyser l’étape de développement de l’escargot :

Le segment et la droite sont bien-sûr perpendiculaires. On peut masquer le cercle et la droite pour tracer le triangle sous forme d’un polygone coloré.
Et on peut alors construire la macro qui sera appliquée successivement sur chaque nouvelle hypoténuse.

On efface la figure.
On crée un segment zéro de longueur 1 (orienté comme le segment final de la macro).
On applique la macro successivement.
On obtient l’escargot.

On voit bien dans cet exemple que le segment est un segment orienté :
Pour que la construction se déroule comme prévu, il faut orienter les segments de la macro et le segment zéro de l’escargot dans le même sens (normale dans le sens trigonométrique, autrement dit « de gauche à droite » pour les premiers segments).

Si le segment zéro et le segment final de la macro ne sont pas orientés dans le même sens, l’escargot aura du mal à se loger dans sa coquille...

(Pour cette dernière figure, les polygones sont tracés avec transparence).

2) Construire une tractoire avec l’outil segment de longueur donnée (option fixe validée)

Introduction :

Les tractoires sont des courbes particulières. Leur définition et leur histoire est décrite dans cet article de Dominique Tournès, auquel nous nous réfèrerons :
http://www-cabri.imag.fr/abracadabri/Courbes/Tract/Tract1.html

Ces courbes ont ceci de particulier qu’on les associe naturellement à un outil (même si celui-ci est difficile à concrétiser) de la même façon que le cercle est associé au compas.
Dans cette partie, on va montrer comment le segment de longueur donnée (option fixe validée) de CaRMetal (outil que l’on ne retrouve pas dans les autres logiciels de géométrie dynamique, exception faite de TracenPoche) [2] permet de construire cet outil (cette idée ayant certainement déterminé l’implémentation du segment de longueur donnée dans CaRMetal).

A) La tractrice (tractoire à base rectiligne)

Le cas le plus simple de tractoire est celui de la tractrice, ainsi décrit dans l’article cité plus haut :

« En 1670, Leibniz rencontre à Paris le médecin Claude Perrault : ce dernier sort sa montre, la pose sur une table, déplace l’extrémité de la chaîne le long du bord rectiligne de la table et demande à Leibniz quelle est la courbe décrite par la montre.

Leibniz nomme la nouvelle courbe tractrix, Huygens préfère l’appeler tractoria, aujourd’hui on parle de tractrice. » [3]

Très tôt (Huygens en 1 692), les géomètres ont tenté de construire un outil pour tracer les tractoires, cet outil étant sensé s’ajouter à la panoplie d’outils traditionnels que sont la règle et le compas.
Cettte tentative se retrouve en œuvre dans CaRMetal à travers le segment de longueur fixe.

L’article cité plus haut décrit la construction approchée de la tractrice par macro avec le logiciel Cabri.
CaRMetal permettrait bien-sûr de réaliser la même procédure.
Mais on va voir ici comment le segment de longueur fixe de CaRMetal permet de proposer une alternative remarquable d’efficacité.

Reprenons le schéma de la procédure par macro (dans Cabri ou autre) :

Quand A passe en A’, B passe en B’. La longueur du segment est maintenue. Le mouvement instantané [BB’] se fait le long de la tangente (AB) à la tractrice.

Dans CaRMetal, on peut utiliser le segment de longueur fixe et le mouvement dynamique des extrémités en gardant une longueur fixe.
A s’étant déplacé en A’, la position de A n’est plus connue. Où va être placé B’ ?

C’est cette position de B’ qui est implémentée.
Le segment de longueur fixe fonctionne de cette manière : si on déplace A en A’, B va en B’.
Dans le cas présent, on n’est plus tributaire d’une macro.

On commence par tracer la tractrice pour une longueur de chaîne de 4 m en partant de la position où la chaîne est perpendiculaire au bord de la table : (AB) perp d.

Pour réaliser cette construction on va écrire un script, mais le début de la construction sera fait dans l’interface (à l’heure actuelle, il y a un défaut de CaRScript pour le segment de longueur fixe. Cette situation devrait rapidement évoluer, permettant de tout faire par script) :

Interface :

  • On crée un point A(0 ;0) non fixe.
  • On crée un point B(0 ;4) non fixe.
  • On crée un segment de longueur fixe d’extrémités A et B.
  • On matérialise la base rectiligne en traçant une demi-droite en noir

Script :

La courbe sera formée de segments mais ceux-ci seront suffisamment petits pour que la courbe apparaisse lisse.
C’est un déplacement qui génère les points de la courbe, donc celle-ci ne peut pas être obtenue comme un lieu automatique par le logiciel.

Résultat :

On commence par tracer la courbe avec un pas dx = 0,1.
La construction est instantanée. On obtient la courbe suivante.

On peut comparer cette courbe avec la tractrice théorique dont l’équation (obtenue par intégration) est : x = 4*ln((4+sqrt(16-y^2))/y)-sqrt(16-y^2).

On trace cette courbe (en vert) avec le traceur de courbes paramétriques de CaRMetal en prenant :
x = 4*log((4+sqrt(16-t^2))/t)-sqrt(16-t^2) [log est le logarithme népérien]
y = t

On obtient (courbe rouge toujours avec un pas de 0.1) :

Pour un pas de 0.01, on observe en direct le déroulement de la construction (qui prend quelques secondes) :

Script (on change seulement dx) :

On part de :

On obtient la courbe :

ou sans les axes :

La précision est remarquable, et très largement supérieure à celle obtenue avec la procédure par macros. Il faut zoomer fortement pour distinguer les deux courbes.

Dans la construction ci-dessus, on est parti d’une position initiale où le segment [AB] (la chaîne de montre) était perpendiculaire à la base (l’arête de la table).
Mais le dynamisme de CaRMetal s’applique à ce point B initial, qui peut être déplacé dynamiquement (on ne peut pas passer par la barre de propriété) avant de lancer le script.
Par conséquent, on peut étudier toutes les positions initiales du segment [AB] sans rien changer à la construction et au script.

Par exemple, pour cette position initiale :

on obtient la courbe suivante :

Le classeur CaRMetal tractrice.zirs permettant de construire la tractrice comme indiqué est joint à cet article.
Il contient deux figures, l’une avec la courbe théorique, l’autre sans.
Il suffit de lancer le script.

B) Tractoires à base circulaire

Ces tractoires font l’objet de l’article Fleurs de tractoire avec CaRMetal.