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.

Prise en main de CaRMetal (1/2)
Article mis en ligne le 13 février 2014
dernière modification le 17 avril 2021

par Alain Busser, Patrice Debrabant

Pourquoi diable ce nom de « CaRMetal » ?…

Explication

Il faut bien le reconnaître, ce nom évoque plutôt la sidérurgie que la géométrie dynamique, et on peut considérer que c’est une maladresse de communication.
Mais ce jugement hâtif mérite d’être nuancé car ce nom, une fois décodé, traduit très finement l’essence du logiciel.

Notons d’abord que si c’est la sidérurgie qui vient à l’esprit (on pense naturellement au groupe ArcelorMittal, qui a fait la une des journaux), c’est une association malheureuse…
En réalité, c’est à la forge que « Metal » fait allusion, selon une métaphore très répandue chez les développeurs : le code d’un programme est malléable comme l’acier et se travaille selon un processus analogue (on casse et on recolle pour forger).
C’est dans cette veine que s’inscrit par exemple le projet SourceForge.

Mais ce n’est pas tout.

  • CaRMetal dérive de C.a.R (Compass and Ruler = Compas et Règle), et en reprend la racine.
  • Restait à le distinguer par un suffixe, et ce n’était pas chose aisée.
    Or, à l’origine, ce qui distingue CaRMetal de C.a.R, c’est la façon de concevoir l’interface. Et c’est précisément ce que suggère la référence à « Metal », qui est l’apparence par défaut (on parle en fait de « look and feel ») de la bibliothèque graphique Swing.
    Si cette apparence « métal brossé » est perceptible dans l’interface, la notion de « look and feel » prend aussi un sens imagé qui esquisse la genèse et la philosophie du logiciel.

Deuxième partie de ce article

Cet article peut être librement diffusé et son contenu réutilisé pour une utilisation non commerciale (contacter l’auteur pour une utilisation commerciale)(http://creativecommons.org/licenses/by-nc-sa/3.0/fr/legalcode)

Formuler un mode d’emploi de CaRMetal. Tel est le projet de cet article (qui peut sembler relever du « réchauffé »).
Ce mode d’emploi est orienté vers une utilisation pédagogique. Il a été conçu pour faciliter la prise en main du logiciel, en s’attachant à expliciter les petits points qui peuvent rendre le logiciel difficile à appréhender. Ce ne sont que de petits points, mais ils peuvent s’avérer bloquants.
C’est pourquoi ce mode d’emploi m’a semblé nécessaire. J’espère qu’il pourra être utile à certains lecteurs et qu’il leur donnera envie d’aller plus loin avec CaRMetal.

L’article est illustré par des tutoriels vidéo. Ceux-ci consistent souvent à mobiliser CaRMetal pour réaliser une activité pédagogique (plutôt de type collège).
On n’abordera pas les scripts, qui constituent une composante essentielle de CaRMetal mais feront l’objet d’un article ultérieur.

Tous les tutoriels présentés sont inédits.

Introduction

CaRMetal est un logiciel Open Source issu de C.a.R, un logiciel développé par René Grothmann.
CaRMetal est dévelopé par Eric Hakenholz, qui développe depuis peu DGPad, un logiciel prometteur de géométrie dynamique destiné aux tablettes (mais aussi utilisable sur un ordinateur classique).
Le nom « CaRMetal » est un hommage à son ancètre C.a.R, mais peut prêter à une interprétation fallacieuse : CaRMetal est un pur logiciel de géométrie dynamique, destiné aux mathématiques.

Qu’est-ce qui distingue CaRMetal des autres logiciels de GD ?

1) Tout d’abord, et avant même toute investigation du logiciel, il y a la qualité des figures produites. Ces figures sont « vectorielles » et ne subissent pas de déformation par redimensionnement.
Par ailleurs, elles sont produites à l’échelle 1 sans difficulté (le professeur peut aisément insérer dans ses corrections des figures « parfaites »).
On me dira que cela n’a rien d’exceptionnel et on aura raison.
Mais il suffit d’observer une figure créée par CaRMetal pour se convaincre de la finesse de son rendu.

2) Ensuite, il y a l’approche constructive sans boîte de dialogue. La philosophie du logiciel est de ne jamais interrompre le flux de travail par une fenêtre bloquante en pop-up.
Signalons que cette approche peut rebuter et qu’elle demande un petit peu de temps d’adaptation.
Mais cet effort en vaut la peine : quand on a intimisé cette approche, on en comprend la pertinence et on en apprécie tout le confort pour la pensée, qui n’est jamais coupée dans son élan.

3) Enfin, il y a l’intégration des différents points de vue : macros, CaRScripts, JavaScript... Tout est parfaitement articulé du point de vue logique et extrêmement pédagogique.

Voici le plan de l’article :

  1. Lancer CaRMetal (installation)
  2. L’avenir et le passé dans CaRMetal
  3. Construire une figure de GD
  4. La barre de propriété
  5. Exportation d’une figure
  6. Les macros
  7. La 3D dans CaRMetal (partie différée)

L’article ne se veut pas exhaustif. De nombreuses fonctionnalités seront passées sous silence. L’idée est de se concentrer sur les lignes de force du logiciel et de donner des exemples pratiques dès que possible.
Par ailleurs, comme précisé dans l’introduction, on ne parlera pas ici des scripts.

1. Lancer CaRMetal (installation)

CaRMetal est un logiciel développé en Java (comme Geogebra).
A ce propos, signalons que le langage Java est actuellement dans la tourmente, en particulier les applets Java que l’on avait l’habitude d’insérer dans les pages web.
C’est un vaste débat, que l’avenir tranchera.
Mais cela ne compromet pas la version installée, qui continuera à être fonctionelle.
De plus, si un logiciel de GD en Javascript venait à s’imposer, il y a fort à parier qu’il reprendra la plupart des approches de CaRMetal. [1]

On peut installer CaRMetal à partir des sources sur le site (choisir le mode d’installation selon le système d’exploitation).

2. L’avenir et le passé dans CaRMetal

Le panneau encadré en vert est toujours disponible. Il est piloté par le panneau du dessus et permet de définir l’aspect d’un type d’objet par défaut.

La barre de propriété (encadrée en rouge) est contextuelle : on fait un clic droit sur l’objet voulu et cette barre apparaît (ou est mise à jour).

Ce principe est très important à comprendre.
Notons que pour certains objets moins susceptibles d’être multipliés, comme les courbes de fonction, l’aspect ne peut être défini que dans la barre de propriété.

Remarque au sujet des vidéos : si vous rencontrez un problème de lecture, n’hésitez pas à essayer avec un autre navigateur (la vidéo chargée est différente selon le navigateur).
Par ailleurs, les vidéos peuvent être visionnées sur la chaîne de CaRMetal sur Youtube.

3. Construire une figure de géométrie dynamique

Avant de commencer, je reprends un conseil, prodigué par Monique Gironce, auteur de nombreux tutoriels, et dont nous sommes nombreux à avoir apprécié les réponses attentives et éclairées à nos inquiétudes sur le forum :

« Je conseille à ceux qui débutent avec CaRMetal de travailler avec le panneau d’aide toujours ouvert. On clique sur un outil et aussitôt on a les explications correspondantes ; sans aller ouvrir ni un pdf ni une page web explicative. »

Tutoriel 02 : introduction (construction de triangles)

Tutoriel 03 : les trois outils constructeurs fondamentaux et le cliquer-glisser

Tutoriel 04 : les droites

Tutoriel 05 : médiatrices et bissectrices

Angles

En première analyse, il y a deux types d’angle dans CaRMetal :

  • les angles saillants non orientés = les angles géométriques (mesure entre 0 et 180°) ;
  • les angles orientés (mesure entre 0 et 360°), qui sont orientés dans le sens trigonométrique.

On passe d’un type à l’autre en utilisant le bouton radio .

Pour aller plus loin

En fait, les angles dans CaRMetal sont toujours intrinsèquement orientés, et ils affichent par défaut leur mesure principale entre 0° et 360°.

En pratique, il est utile de pouvoir accéder aux angles géométriques (non orientés, et dont la mesure est comprise entre 0 et 180°).
Une « surcouche » du logiciel permet de passer à ce type d’angle.

On bascule très simplement d’un type d’angle à l’autre avec le bouton radio .

Dans ce qui suit, il peut arriver que ce bouton ait été utilisé de façon un peu détournée.
En effet si un angle (orienté intrinsèquement) a sa mesure principale négative (mesure principale entre -180° et 180° cette fois, comme c’est traditionnel dans les programmes français), ce bouton radio fait basculer entre l’angle saillant et l’angle rentrant. Ce qui est bien commode pour nos programmes actuels en collège.

Un angle géométrique (dans CaRMetal) provient d’un angle orienté.
La « mécanique » permettant d’implémenter les angles géométriques (saillants) est illustrée dans le dernier tutoriel sur les macros en implémentant de la même façon les angles rentrants.

Tutoriel 06 : angles

Cercles et arcs de cercle

Dans beaucoup de logiciels de géométrie dynamique, par exemple dans GeoGebra, on peut regretter que les outils arcs soient livrés sans réelle unité logique et sans rendre compte de leur analogie structurelle avec les angles.
Le système proposé par CaRMetal me semble plus soigné et convaincant.

Il y a cinq outils relatifs aux cercles et aux angles, ces outils sont regroupés sur une ligne.
Mais ce n’est pas tout, comme me l’a fait remarquer très justement Monique Gironce : une bascule dans la barre de propriété des cercles permet de les transformer en arcs. Il suffit alors de désigner deux points quelconques (disons A et B), et on obtient l’arc de cercle correspondant à l’angle $\widehat{AOB}$ (où O est le centre du cercle).

On reconnaît ici le sens de l’économie de CaRMetal et sa très grande cohérence : ces cinq outils sont suffisants pour réaliser toutes les constructions, et la bascule dans la barre de propriété vient compléter le dispositif de façon remarquable.
Les arcs sont traités avec la même rigueur que les angles, et l’analogie est parfaitement implémentée.

Par exemple, on remarque qu’il n’y a pas d’outil arc de cercle défini par centre et deux points.
Mais cet outil est source de confusion. Les deux points doivent être équidistants du centre pour que la construction soit claire (ou alors il faut préjuger du fonctionnement précis de l’outil).
Dans CaRMetal, la bascule dans la barre de propriété des cercles remplace avantageusement cet outil vicié par essence. L’arc est alors défini par intersection du cercle et d’un angle, ce qui est parfaitement cohérent.

Dans la partie consacrée aux macros, on construira aussi une macro permettant de construire un arc de cercle défini par centre et deux points, cette macro ayant le même effet que l’outil de GeoGebra uniquement quand les points sont équidistants du centre.
Cette macro est inutile et assez maladroite. Mais comme on l’aura construit nous-même, on saura précisément ce qu’elle fait. C’est aussi l’intérêt des macros.

Tutoriel 07 : arcs de cercles via la barre de propriétés des cercles

Faisons le point :

Il n’y a pas de boîte de dialogue. On trace, puis on ajuste si nécessaire dans la barre de propriété.

Par exemple (source de perplexité au début), pour tracer un cercle de rayon donné, on choisit l’outil « cercle de rayon donné », puis on choisit le centre et on clique n’importe où pour créer un cercle de rayon fixe, ou on clique-glisse n’importe où pour créer un cercle de rayon dynamique.
Cette manipulation, qui devient vite un réflexe, crée un cercle de rayon donné, que l’on rectifie immédiatement dans la barre de propriété (qui est activée très opportunément).

4. La barre de propriétés

La barre de propriétés est très astucieuse, mais elle peut laisser perplexe dans certains cas. Il convient de s’y accoutumer.
La barre de propriétés d’un objet est activée par clic droit ou en utilisant l’outil .
On ne parlera ici que du bouton radio fixe et de la gestion de la couleur.

A) Le bouton radio fixe

Le bouton radio « fixe » est proposé dans la barre de propriété de certains objets.
Cette option permet a priori de « fixer » un paramètre de l’objet.
Cette notion de paramètre « fixe » mérite une explication... Car un paramètre « fixe » reste susceptible de bouger dans certains cas.

Alors, qu’est-ce qu’un paramètre « fixe » ?

Partons d’une figure vide et prenons le cas le plus simple, celui d’un point.
Quand on crée un point avec l’outil point, le point créé n’est pas fixe (voir la barre de propriété). En fait, ce n’est pas le point lui-même qui est fixe, mais ses coordonnées (on va me dire que c’est pareil, patience...)
Cela signifie ici que l’on peut le déplacer dynamiquement à la souris (en mode Déplacement)
Si l’on coche le bouton radio « fixe », on ne peux plus le déplacer dynamiquement à la souris.
Jusque là, c’est simple.
Mais un point peut avoir des coordonnées fixes, et pourtant bouger !

On entre ici dans une composante intégrée essentielle de CaRMetal, à savoir sa capacité à utiliser des expressions référencées en lieu et place de valeurs numériques.
Reprenons notre exemple. On a un point A fixe. Créons un point B (par défaut pas fixe). Modifions ainsi les coordonnées de A dans la barre de propriété :

Déplaçons dynamiquement le point B à la souris. Le point A bouge, bien que ses coordonnées restent « fixes ».

Remarque : si on fait afficher les coordonnées de A (bouton radio dans la barre des propriétés), on aura l’impression qu’elles ne sont pas fixes car elles seront calculées avant d’être affichées. Mais elles sont fixes en tant qu’expressions.

Pour le cercle de rayon donné, c’est pareil : le bouton radio rayon « fixe » contrôle le statut (fixe/pas fixe) du paramètre rayon.
Ce n’est pas le cercle qui est fixe, mais son rayon. Là encore, si le rayon est défini comme une expression, le rayon sera « fixe » mais bougera.

Tutoriel 08 : les éléments dynamiques de CaRMetal

Tutoriel 09 : parallélogrammes particuliers

A) La gestion de la couleur

Comme toute propriété, la gestion de la couleur peut se faire dans la barre de propriétés (pour les objets déjà construits) ou dans le panneau de construction (pour les objets futurs).
CaRMetal permet de construire des objets possédant un contour, objets qui peuvent être remplis ou pas, et partiellement transparents ou opaques (tout cela sans curseur).

Il y a trois boutons radio qui pilotent le tout :

  • le bouton épaisseur, avec 3 options : fin (pointillés), normal, épais.
  • le bouton rempli/pas rempli.
  • Le bouton opaque/partiellement transparent.

Voici les points importants :

  1. Quand on fixe la couleur d’un objet (par ses composantes RVB), il s’agit de la couleur du contour. Tout découlera de cette couleur du contour.
    La couleur par défaut de l’intérieur en est déduite (40% couleur du contour + 60% blanc).
  2. En mode pas rempli, l’option épaisseur s’applique au contour sans surprise.
  3. En mode rempli, l’option épaisseur s’applique autrement (contrairement à ce que pourrait laisser penser l’icône !) :
    • épais : l’intérieur prend la couleur du contour et est toujours opaque ;
    • normal : le contour est visible, l’intérieur est opaque ou pas ;
    • fin (pointillé) : le contour est invisible, l’intérieur est opaque ou pas.

C’est étonnant, mais extrêmement astucieux et économique.
(Mais on pourrait tout de même préférer une gestion plus claire et plus intuitive.)


Poursuivons avec quelques activités qui peuvent être présentées en classe :

Tutoriel 10 : la propriété de Pythagore

Tutoriel 11 : le cosinus dans le triangle rectangle

Tutoriel 12 : la propriété de Thalès

5. Exportation d’une figure

Comment exporter une figure [2] pour l’insérer dans un document texte (cours écrit, devoir, etc) ?

On utilise le menu Fichier ou la palette Fichier (qui renvoie aux mêmes outils).

1) La première possibilité consiste à faire un export au format png, qui est un format bitmap.

On sélectionne une zone de sélection avec l’outil idoine puis on exporte.
Cette méthode est fonctionnelle (et on obtient une figure à l’échelle 1), mais elle a deux défauts :

  1. Elle exporte un fond de couleur blanche
  2. Une image au format bitmap est dégradée si on la réduit et surtout si on l’agrandit. On peut donc perdre en qualité au gré des manipulations opérées sur la figure.

Pour exemple, on va utiliser une nouvelle fonctionnalité de la version 3.8.2 : la représentation graphique d’une fonction discontinue définie par morceaux (en respectant les conventions).
Voici le résultat de l’export en png :

Profitons de cet exemple pour faire une petite digression sur la représentation graphique des fonctions avec CaRMetal.
Certains (et moi-même à l’occasion, par paresse) déplorent l’impossibilité de tracer la courbe dans un repère qui ne soit pas orthonormé.
Il ne s’agit nullement d’une incapacité fondamentale du logiciel. Les développeurs seraient en mesure d’implémenter cette fonctionnalité sans grand effort. S’ils ne le font pas, c’est par choix, pour respecter la logique et la cohérence du logiciel. En effet, dans un repère non orthonormé, les objets perdent leur sens, les longueurs sont déformées, les cercles deviennent des ellipses,…
CaRMetal, contrairement à d’autres logiciels, ne cède pas à cette facilité : on peut quand-même tracer une courbe dans un repère non orthonormé, mais il faut construire ce repère (flottant) soit-même, ce qui préserve l’intégrité des outils.

Comment ?

La représentation graphique d’une fonction f dans un repère (O,I,J) dépend de f et des trois points O, I et J. Il faut donc d’abord construire ces éléments (pour la fonction f, c’est l’icône tout à gauche de la rubrique « fonctions » puisqu’on ne veut pas sa représentation graphique mais seulement la définition de la fonction). Puis les droites (OI) (axe des abscisses) et (OJ) (axe des ordonnées). Alors la représentation graphique de f dans (OIJ) sera construite comme le lieu d’un point, construit de la façon suivante :

  • on construit un point M sur l’axe des abscisses ;
  • on construit une expression E1 qui est l’abscisse de M, avec la macro « coefficient d’alignement » (dans les macros d’alignement), appliquée aux points O, I et M ;
  • on construit un point P sur l’axe des ordonnées, dont l’ordonnée est l’image de l’expression construite ci-avant par f ; pour cela on utilise la macro « report de mesure algébrique avec dialogue » et on entre f(E1) dans la boîte de dialogue qui apparaît après avoir sélectionné O et J ;
  • On construit un point Q avec l’outil « translation » appliqué à O, M et P, c’est-à-dire tel que OMQP est un parallélogramme ;
  • le lieu de Q est alors la représentation graphique souhaitée.

Une fois que c’est fait, on peut ajouter une grille avec la macro « grille définie par 3 points », ce qui donne la figure suivante, à tester avec le Monkey de CaRMetal :

représentation graphique d’une fonction dans un repère
Le repère est mobile, soit en bougeant O, I ou J à la souris, soit en agitant le tout avec le Monkey

Pour manipuler en ligne, voici la version DGPad, manipulable ci-dessous :

Pour graduer l’axe des abscisses, le CaRScript suivant fait l’affaire (de préférence, choisir une forme de « + » pour les points) :

  1. for(var x=-8; x<=8; x++){
  2.         p=Point("A"+x,"x(O)+(x(I)-x(O))*"+x,"y(O)+(y(I)-y(O))*"+x);
  3.         SetShowName(p,true);
  4.         SetAlias(p,x);
  5. }

Télécharger

Avec un script analogue pour l’axe des ordonnées, on a des graduations sur les deux axes.

Voici la procédure complète résumée dans une vidéo :

Tutoriel 13 : construire la courbe d’une fonction en repère non orthonormé

2) La méthode la plus recommandée est l’export dans un format vectoriel. Les figures vectorielles (codées par des fonctions) ne sont pas dégradées par redimensionnement.
CaRMetal propose trois formats vectoriels (autrement dit tous les formats vectoriels utiles) :

  1. le format svg (notamment utilisé par Wikipedia et par HTML 5) ;
  2. le format eps (utilisé par Acrobat et par LaTeX) ;
  3. le format pdf (utilisé aussi par LaTeX).

Là encore, on a un export à l’échelle 1.
Pour LibreOffice, le format le plus adapté est le svg. On insère l’image comme on le fait avec l’image png. Voici le résultat :

Et cette fois, la figure est vectorielle, comme on peut le constater en zoomant sur la figure (Ctr + sur PC ou Cmd + sur Mac… puis Ctr 0 ou Cmd 0 pour revenir à l’affichage normal).

La qualité est identique lors d’un export en eps ou en pdf pour LaTeX.

Dans certains cas, il pourra être nécessaire de supprimer le fond dans la figure initialement exportée, ce qui se fait facilement en utilisant un logiciel d’images vectorielles (Inskape par exemple). Le fond est situé dans un calque, qu’il suffit de sélectionner, puis de supprimer.

On a choisi d’illustrer l’export par une nouveauté de la version 3.8.2.

En pratique, pour les documents prof, les figures géométriques à l’échelle 1 constituent sans doute l’exemple le plus utile des capacités de l’export avec CaRMetal.

6. Les macros

Le concept de macro est un élément essentiel de CaRMetal (comme de beaucoup de logiciels de GD).

Les macros sont des outils personnalisés, que l’utilisateur peut créer à loisir à partir des outils existants, des expressions, des macros antérieures, et pourquoi pas des scripts. Une fois de plus, l’intégration est parfaite.
Vous trouvez qu’il manque un outil à CaRMetal ? Pas de problème, il suffit de créer une macro. Désormais, vous disposerez de cet outil.
La macro est une fonction à plusieurs variables, qui renvoie plusieurs variables (les variables en question sont les noms des objets de CaRMetal : des points, des droites, des expressions, ...). Certaines sont proposées par défaut avec le logiciel plutôt que sous forme d’outil, par choix délibéré des développeurs.

Tutoriel 14 : arc de cercle défini par centre et deux points

NB : la macro présentée dans ce tutoriel a beaucoup de défauts.
Elle permet juste d’illustrer la procédure dans un cas familier.


Tutoriel 15 : symétrie axiale et symétrie centrale

Tutoriel 16 : arbre de Pythagore sans script

Tutoriel 17 : angles rentrants

7. La 3D dans CaRMetal

Il est possible de construire des figures en pseudo-3D avec CaRMetal, ces figures pouvant être très sophistiquées, comme le montrent par exemple cet article et cet autre d’Yves Martin et de Pierre-Marc Mazat.
Cela étant, la 3D reste en stade de développement, et l’intégration parfaite dans une surcouche du logiciel n’est pas encore réalisée.
Pour l’instant, il existe un repère mobile et quelques outils, mais toute construction un peu compliquée devra faire appel aux scripts.

Par conséquent, cette partie sera traitée dans un futur article consacré aux scripts.


Pour information, cet article est sous licence Creative Commons (CC BY-NC-SA) [3].