Faire des dessins géométriques propres: Metapost
Par yves le jeudi, juin 7 2007, 11:45 - Logiciels - Lien permanent
Spécial math, une présentation de METAPOST pour réaliser soit même à l'ordinateur de jolis dessins géométriques.
{toc}
Les dessins en géométrie: à l'ordinateur ou à la main?
Gotlieb prétendait, il y a déjà longtemps, qu'un prof de Math n'était pas respecté s'il ne savait pas faire des cercles parfaits à main levée au tableau - les afficionados du tableau blanc interactif apprécieront. Les dessins géométriques peuvent se faire à la main, soit à main levée (sans instruments[1]), soit à l'aide des règle, compas et équerre qui forment l'essentiel de l'outillage pour le cours de mathématiques[2]). Il n'y a pas de honte à faire ses fiches de géométrie à la main et il y a quelques avantages à cela, comme de se mettre dans la même situation que ses élèves ou gagner du temps.
Contrairement à une idée fausse largement répandue, l'usage de l'ordinateur fait souvent perdre du temps, et il est plus rapide de tracer sur une feuille blanche quelques traits et un texte en écriture baton, que de faire le même dessin dans un ordinateur, d'exporter le dessin sous forme d'image, l'ouvrir dans le traitement de texte, insérer l'image et ajouter le texte avant d'imprimer.
L'avantage de l'ordinateur se trouve dans la possibilité d'archiver, de rechercher, de réutiliser, de modifier un travail antérieur. Mais il n'y pas de gain à en attendre au niveau du temps de préparation: retrouver un exercice, le rééditer, le modifier (l'adapter) et le réimprimer sont aussi long à l'ordinateur qu'une réécriture à la main.
Un autre avantage de l'ordinateur c'est la possibilité de partager ses documents avec d'autres. Bien sûr, c'est internet qui permet cela, et cela donne l'illusion d'un gain de temps considérable. Une erreur assez commune est de croire qu'un document trouvé sur le net sera utilisable tel quel. C'est assez rare, et il faudra prévoir de passer du temps soit en amont - pour que la classe puisse tirer profit d'un exercice il faut avoir travaillé les bons prérequis avant - soit au moment de récupérer l'exercice, en l'adaptant (réécriture de la consigne ou modification plus importante). Le gain de temps à attendre de cette pratique n'est pas évident, surtout si on inclus le temps de recherche et de sélection des exercices.
Ce petit préambule avait pour ambition de décomplexer l'enseignant vis à vis de la mode de l'ordinateur: il n'y a pas d'obligation d'utiliser l'ordinateur pour préparer ses cours[3], et le jeu n'en vaut peut-être pas la chandelle. Cela mérite au moins réflexion. Voyons maintenant quelques outils si on décide que le jeu en vaut la chandelle.
Le prof de mathématiques a en général au moins entendu parler de LaTex. LaTex est le meilleur outil pour éditer à l'ordinateur des textes scientifiques, et en particulier les mathématiques. METAPOST est quand à lui un formidable outil pour les dessins géométrtiques.
LaTex
Le principe de l'utilisation LaTex est simple:
- Un ficher de commande, au format texte, décrit le contenu du document.
- Ce fichier est envoyé à un programme qui à va créer un nouveau fichier dans un format adapté à l'affichage ou à l'impression.
- Ce nouveau fichier peut fair l'objets de traitement lui même.
Un exemple de code se trouve dans l'article de Wikipedia consacré à LaTex.
Il faut disposer d'une version de (La)TeX sur son ordinateur. Pour Windows il existe TexLive ou ProTeXt. Les linuxiens n'ont pas besoin de lien pour l'installer. Et il existe des programmes appelés EDI, qui permettent de faciliter la saisie du code LaTex et le lancement des commandes permettant de générer les fichiers. Texmaker en fait partie.
La prise en main, pour un débutant est assez difficile. Voici un document à lire pour débuter sur Syracuse, site qui propose (entre autres) une base d'exercices (formats tex metapost pdf) ainsi qu'une liste de diffusion consacrée à ces questions.
On est loin du concept de WYSIWYG que vous retrouvez dans Word ou OpenOffice.org, dans lesquels le logiciel affiche (ou devrait afficher) ce qui va effectivement être obtenu. Mais les documents sont typographiquement impeccables.
METAPOST
METAPOST fait partie de l'ensemble constitué par une distribution (La)TeX. Il est aussi utilisable à part. C'est un outil de dessin absolument remarquable, qui est capable de résoudre des équations linéaires. Il est donc possible de lui décrire des figures en édictant des contraintes au lieu de lieu décrire exactement la sortie finale. Il fonctionne comme LaTex, un fichier de commande passe à travers et génère une figure au format EPS, réutilisable dans d'autres outils (LaTex, OpenOffice.org).
Par exemple ce code:
% tracé du triangle
z0 = (0,0) ; z1 = (4cm,0) ; z2 = (1cm,3cm) ; draw z0--z1--z2--cycle ; for i=0 upto 2: draw z[i] withpen pencircle scaled 4bp ; endfor % recherche de l'orthocentre H (z3 - z0) rotated 90 = whatever*(z2 - z1) ; (z3 - z1) rotated 90 = whatever*(z0 - z2) ; dotlabel.top("H",z3) ; % recherche du centre 0 du cercle circonscrit (z4 - 1/2[z0,z1]) rotated 90 shifted z0 = whatever[z0,z1] ; (z4 - 1/2[z1,z2]) rotated 90 shifted z1 = whatever[z1,z2] ; dotlabel.top("O",z4) ;
produit la figure suivante, dans laquelle les positions de O et H sont calculées par METAPOST:

METAPOST en langage de macros
La puissance de METAPOST tient aussi à la possibilité d'ajouter des macros pour faciliter l'usage. On trouve ainsi - toujours sur l'excellent Syracuse - des macros pour la géométrie plane ou spatiale. Notez que les macros permettent d'écrire le projeté d'un point sur une droite, ou l'orthocentre - qui seront calculés par METAPOST - comme une simple fonction et non pas en écrivant l'équation comme ci dessus.
Une documentation de l'utilisation de METAPOST avec ces macros se trouve aussi ici.
en géométrie plane
La même figure sera obtenue par le code suivant:
input geometriesyr16; beginfig(1); % definition des points pair A,B,C,H,O; % positionnement A = (0,0); B = (4cm,0); C = (1cm, 3 cm); % tracé trace triangle(A,B,C); % calcul des poits via les macros O = CentreCercleC(A,B,C); H = Orthocentre(A,B,C); % marquage des points par un rond marque_p:="plein"; % marque sans mettre les noms pointe(A); pointe(B); pointe(C); % marque en nommant nomme.top(H); nomme.top(O); endfig; end
C'est quand même bien plus facile à écrire et à comprendre, merci à Christophe Poulain qui a écrit ces macros, et à toute l'équipe de Syracuse.
des exemples en géométrie dans l'espace
Cet exemple, orienté géométrie dans l'espace, provient du wiki de Syracuse:

Cet exemple est une contribution d'un utilisateur:

et du dessin à main levée fait à l'ordinateur !
Ce que je préfère comme macro, c'est celle qui permet le dessin à main levée; notez que, pour cette figure, j'ai fait calculer à METAPOST les positions de A et B comme intersection du cercle de centre O avec le cercle (non tracé) de diamètre [OM]:

En voici le code:
input geometriesyr16; figuremainlevee(0,0,11u,11u); % definitions pair A,B,O,M,I; path cc, cd[]; % positionnement des points fixes O=u*(3,3); M=u*(5,9); % calcul du milieu I=(O+M)/2; % definition du cercle visible cc=cercles(O,3cm); trace cc withcolor black; % les deux points de tangence sont aux intersections % avec les deux demi-cercles de diametres [OM] A = cc intersectionpoint arccercle(O,M,I); B = cc intersectionpoint arccercle(M,O,I); % traces des elemnts restant marque_p:="plein"; trace segment(O,A); trace segment(O,B); trace droite (A,M); trace droite (B,M); % marque les angles droits trace codeperp(O,A,M,5); trace codeperp(O,B,M,5); % marque et nomme les points nomme.bot(O); nomme.rt(A); nomme.lft(B); nomme.lrt(M); finmainlevee;
Essayez maintenant d'utiliser un logiciel de géométrie dynamique pour obtenir un tel résultat. Vous comprendrez tout l'intérêt qu'il y a à utiliser la puissance de METAPOST pour les figures de géométrie.
Conclusion
LaTex est un outil magnifique, dont la syntaxe pour les mathématiques est tellement connue qu'elle est reprise un peu partout (jusque dans Wikipedia). Moins connu est METAPOST dont la puissance pour le réalisation des dessins géométriques est pourtant remarquable.









visiteurs uniques