Une courbe de Lissajous (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:=1.2cm;

vardef f(expr t) = sin(2*t+Pi/3) enddef;
vardef g(expr t) = sin(3*t) enddef;

beginfig(1);
 Repere(8,8,4,4,3,3);
 Axes; 
 Debut; 
  Graduations; Unites(1);

  drawoptions(withcolor LightSlateGrey);
  trace ((-1,-1)--(-1,1)--(1,1)--(1,-1)--cycle);
  trace ((-1,-1)--(1,1));
  trace (1,-1)--(-1,1);
  trace Cercle(origine,1);
  trace ((-1,0.5)--(1,0.5));
  trace ((-1,-0.5)--(1,-0.5));
  trace ((0.5,-1)--(0.5,1));
  trace ((-0.5,-1)--(-0.5,1));
  trace ((-1,sqrt(3)/2)--(1,sqrt(3)/2));
  trace ((-1,-sqrt(3)/2)--(1,-sqrt(3)/2));
  trace ((sqrt(3)/2,-1)--(sqrt(3)/2,1));
  trace ((-sqrt(3)/2,-1)--(-sqrt(3)/2,1));

  trace Courbe(f,g,0,2*Pi,500) avecCrayon(1.5,Orchid);

  pointe Point(0,0);

 Fin;
endfig;
end

%%% English version

input geom2d;

labeloffset := 6;
gddU:=1.2cm;

vardef f(expr t) = sin(2*t+Pi/3) enddef;
vardef g(expr t) = sin(3*t) enddef;

beginfig(1);
 Frame(8,8,4,4,3,3);
 Axis; 
 gddBegin; 
  Graduations; Units(1);

  drawoptions(withcolor LightSlateGrey);
  gddDraw ((-1,-1)--(-1,1)--(1,1)--(1,-1)--cycle);
  gddDraw ((-1,-1)--(1,1));
  gddDraw (1,-1)--(-1,1);
  gddDraw Circle(origine,1);
  gddDraw ((-1,0.5)--(1,0.5));
  gddDraw ((-1,-0.5)--(1,-0.5));
  gddDraw ((0.5,-1)--(0.5,1));
  gddDraw ((-0.5,-1)--(-0.5,1));
  gddDraw ((-1,sqrt(3)/2)--(1,sqrt(3)/2));
  gddDraw ((-1,-sqrt(3)/2)--(1,-sqrt(3)/2));
  gddDraw ((sqrt(3)/2,-1)--(sqrt(3)/2,1));
  gddDraw ((-sqrt(3)/2,-1)--(-sqrt(3)/2,1));

  gddDraw Curve(f,g,0,2*Pi,500) withPen(1.5,Orchid);

  pointe Point(0,0);

 gddEnd;
endfig;
end


Mots clés : lissajouscourbegéométriemp-geom2d

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

Fichiers

Télécharger l’archive complète