pavagesequiexemples.1 pavagesequiexemples.2 pavagesequiexemples.3 pavagesequiexemples.4 pavagesequiexemples.5
 %%D'apres 'Pour la science' n°272 Avril 2000 - p106
 
 input geometriesyr12;
 
 vardef pavagesequi(expr chemin,tour,coul,coull)=
   save $;
   picture $;
   pair A,B,C;
   A=u*(0,0);
   B=u*(1,0);
   C=rotation(B,A,60);
   path especes;
   especes = chemin
 	    -- rotation(chemin,symetrie(iso(A,B,C),A,B),-120)
 	    -- rotation(chemin,symetrie(iso(A,B,C),A,B),120)
 	    -- cycle;
   if tour=0:
     $=image(
       trace chemin;
       );
   elseif tour=1:
     $=image(
       fill especes withcolor coul;
       fill (chemin--symetrie(chemin,iso(A,B))--cycle) withcolor coull;
       trace especes;
       trace symetrie(chemin,iso(A,B));
       A:=symetrie(C,A);
       B:=symetrie(C,B);
       );
   elseif tour>=2:
     $=pavagesequi(chemin,1,coul,coull);
     for k=2 upto tour:
       $:=image(
 	trace $;
 	trace rotation($,symetrie(iso(A,B,C),A,B),-120);
 	trace rotation($,symetrie(iso(A,B,C),A,B),120);
 	trace symetrie($,iso(A,B));
 	A:=symetrie(C,A);
 	B:=symetrie(C,B)
 	);
     endfor;
   fi;
   $
 enddef;
 
 vardef pavagesequiqui(expr chemin,tour,coul,coull)=
   save $;
   picture $;
   pair A,B,C;
   A=u*(0,0);
   B=u*(1,0);
   C=rotation(B,A,60);
   path especes;
     especes = chemin 
 	      -- rotation(chemin,symetrie(iso(A,B,C),A,B),-120)
 	      -- rotation(chemin,symetrie(iso(A,B,C),A,B),120)
 	      -- cycle;
   if tour=0:
     $=image(
       trace chemin;
       );
   elseif tour=1:
     $=image(
       trace chemin;
       drawoptions(dashed evenly);
       trace rotation(chemin,symetrie(iso(A,B,C),A,B),-120);
       trace rotation(chemin,symetrie(iso(A,B,C),A,B),120);
       trace symetrie(chemin,iso(A,B));
       drawoptions();
       A:=symetrie(C,A);
       B:=symetrie(C,B);
       );
   elseif tour=2:
     $=image(
       fill especes withcolor coul;
       fill (chemin--symetrie(chemin,iso(A,B))--cycle) withcolor coull;
       trace especes;
       trace symetrie(chemin,iso(A,B));
       A:=symetrie(C,A);
       B:=symetrie(C,B);
       );
     $:=image(
       trace $;
       drawoptions(dashed evenly);
       trace rotation(pavagesequi(chemin,1,coul+0.5blanc,coull+0.5blanc),
         symetrie(iso(A,B,C),A,B),-120);
       trace rotation(pavagesequi(chemin,1,coul+0.5blanc,coull+0.5blanc),
         symetrie(iso(A,B,C),A,B),120);
       trace symetrie(pavagesequi(chemin,1,coul+0.5blanc,coull+0.5blanc),
         iso(A,B));
       drawoptions();
       A:=symetrie(C,A);
       B:=symetrie(C,B);
       );
   elseif tour>=3:
     $=pavagesequi(chemin,1,coul,coull);
     for k=2 upto tour-1:
       $:=image(
 	trace $;
 	trace rotation($,symetrie(iso(A,B,C),A,B),-120);
 	trace rotation($,symetrie(iso(A,B,C),A,B),120);
 	trace symetrie($,iso(A,B));
 	A:=symetrie(C,A);
 	B:=symetrie(C,B);
 	);
     endfor;
     $:=image(
       trace $;
       drawoptions(dashed evenly);
       trace rotation(pavagesequi(chemin,tour-1,coul+0.5blanc,coull+0.5blanc),
         symetrie(iso(A,B,C),A,B),-120);
       trace rotation(pavagesequi(chemin,tour-1,coul+0.5blanc,coull+0.5blanc),
         symetrie(iso(A,B,C),A,B),120);
       trace symetrie(pavagesequi(chemin,tour-1,coul+0.5blanc,coull+0.5blanc),
         iso(A,B));
       drawoptions();
       A:=symetrie(C,A);
       B:=symetrie(C,B);
       );
   fi;
   $:=image(
     trace $;
     trace A--B--C--cycle 
 	dashed dashpattern(on12bp off6bp on3bp off6bp) withcolor gris;
     trace iso(A,B)--iso(B,C)--iso(C,A)--cycle 
 	dashed dashpattern(on12bp off6bp on3bp off6bp) withcolor gris;
     );
   $
 enddef;
 
 
Conversion au format PDF de pavagesequiexemples.1
Vers la liste des images
 beginfig(1);
   path MM;
   MM=(0,0)--u*(0.25,0)--u*(0.25,0.4)--u*(0.75,0.2)--u*(1,0);
   trace pavagesequiqui(MM,0,orange,vert);
 endfig;
 
Conversion au format PDF de pavagesequiexemples.2
Vers la liste des images
 beginfig(2);
   trace pavagesequiqui(MM,1,orange,vert);
 endfig;
 
Conversion au format PDF de pavagesequiexemples.3
Vers la liste des images
 beginfig(3);
   trace pavagesequiqui(MM,2,orange,vert);
 endfig;
 
Conversion au format PDF de pavagesequiexemples.4
Vers la liste des images
 beginfig(4);
   trace pavagesequiqui(MM,3,orange,vert);
 endfig;
 
Conversion au format PDF de pavagesequiexemples.5
Vers la liste des images
 beginfig(5);
   trace pavagesequiqui(MM,4,orange,vert);
 endfig;
 
 end