Le bicorne (mp-geom2d)

Auteur ou autrice : Jean-Michel Sarlat.

Mise en ligne le 19 mai 2025

Image du résultat de l’exemple

mp-geom2d a été écrit avec le but de proposer des macros MetaPost permettant de réaliser une figure de géométrie en collant d’assez près à une description impérative :

  • Soit $A$ le point de coordonnées $(2,3)$.
  • Soit $B$ le point de coordonnées $(4,5)$.
  • Trace la droite $(A,B)$.
  • ...

Ici, on montre les exemples de la galerie de la documentation à la fois dans l’interface en français et celle en anglais.

Code


input geom2d;

labeloffset := 6;
gddU:=1cm;

vardef f(expr t) = 2*sin(t) enddef;
vardef g(expr t) = 2*cos(t)*cos(t)/(2-cos(t)) enddef;
vardef h(expr t) = -t*(1+f(t)) enddef;

def traceDoubleVecteur(expr o,d)= drawdblarrow ((o-d)--(o+d)) gddEnPlace enddef;

path bicorne;
bicorne = Courbe(f,g,-Pi,Pi,200)--cycle;

beginfig(1);

 Repere(9,6,4.5,1,2,2);
 Axes; 
 Debut;
  Axes;
  Graduations; Unites(1);

  colorieAvecTransparence(bicorne,CadetBlue,0.2);

  traceDoubleVecteur((0,2),(0.5,0)) avecCrayon(1,Crimson);
  traceDoubleVecteur((0,2/3),(0.5,0)) avecCrayon(1,Crimson);
  fleche Segment((2,0),(1.6,0.4)) avecCrayon(1,Crimson);
  fleche Segment((-2,0),(-1.6,0.4)) avecCrayon(1,Crimson);

  trace bicorne avecCrayon(1.5,CadetBlue);

  pointe Point(0,0);
  pointe Point(2,0);
  pointe Point(-2,0);

 Fin;
endfig;
end
% %%% English version

input geom2d;

labeloffset := 6;
gddU:=1cm;

vardef f(expr t) = 2*sin(t) enddef;
vardef g(expr t) = 2*cos(t)*cos(t)/(2-cos(t)) enddef;
vardef h(expr t) = -t*(1+f(t)) enddef;

def DrawDoubleVector(expr o,d)= drawdblarrow ((o-d)--(o+d)) gddEnPlace enddef;

path bicorne;
bicorne = Curve(f,g,-Pi,Pi,200)--cycle;

beginfig(1);

 Frame(9,6,4.5,1,2,2);
 Axis; 
 gddBegin;
  Axis;
  Graduations; Units(1);

  gddAlphaFill(bicorne,CadetBlue,0.2);

  DrawDoubleVector((0,2),(0.5,0)) withPen(1,Crimson);
  DrawDoubleVector((0,2/3),(0.5,0)) withPen(1,Crimson);
  gddArrow Segment((2,0),(1.6,0.4)) withPen(1,Crimson);
  gddArrow Segment((-2,0),(-1.6,0.4)) withPen(1,Crimson);

  gddDraw bicorne withPen(1.5,CadetBlue);

  gddDrawPoint Point(0,0);
  gddDrawPoint Point(2,0);
  gddDrawPoint Point(-2,0);

 gddEnd;
endfig;
end


Mots clés : géométriecourbetangentemp-geom2d

Cet exemple fait partie de la collection d’exemples Documentation de mp-geom2d.

Fichiers

Télécharger l’archive complète