pavagescarreexemples.10 pavagescarreexemples.11 pavagescarreexemples.12 pavagescarreexemples.13 pavagescarreexemples.14
 %%D'apres 'Pour la science' n°272 Avril 2000 - p106
 
 input geometriesyr12;
 
 vardef pavages(expr chemin,tour,coul)=
   save $;
   picture $;
   pair A,B,C,D;
   A=u*(0,0);
   B=u*(1,0);
   C=u*(1,1);
   D=u*(0,1);
   path especes;
   especes = chemin
 	    -- rotation(chemin,B,-90)
 	    -- reverse(rotation(symetrie(chemin,B,C),B,-90))
 	    -- rotation(chemin,B,90)
 	    -- cycle;
   if tour=0:
     $=image(
       trace chemin;
       );
   elseif tour=1:
     $=image(
       fill especes withcolor coul;
       trace especes;
       A:=A shifted(u*(0,-1));
       B:=B shifted(u*(1,-1));
       C:=C shifted(u*(1,0));
       );
   elseif tour>=2:
     $=pavages(chemin,tour-1,coul);
     $:=image(
       trace $;
       trace symetrie($,B,C);
       trace rotation(symetrie($,B,C),B,-90);
       trace rotation($,B,90);
       A:=A shifted(u*(0,-(2**(tour-1))));
       B:=B shifted(u*(2**(tour-1),-(2**(tour-1))));
       C:=C shifted(u*(2**(tour-1),0));
       );
   fi;
   $
 enddef;
 
 vardef pavagescar(expr chemin,tour,coul)=
   save $;
   picture $;
   pair A,B,C,D;
   A=u*(0,0);
   B=u*(1,0);
   C=u*(1,1);
   D=u*(0,1);
   if tour=0:
     $=image(
       trace chemin;
       trace A--B--C--D--cycle 
         dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
       );
   elseif tour=1:
     $=image(
       trace chemin;
       drawoptions(dashed evenly);
       trace rotation(chemin,B,-90);
       trace reverse(rotation(symetrie(chemin,B,C),B,-90));
       trace rotation(chemin,B,90);
       drawoptions();
       A:=A shifted(u*(0,-1));
       B:=B shifted(u*(1,-1));
       C:=C shifted(u*(1,0));
       trace A--B--C--D--cycle 
         dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
       trace iso(A,D)--iso(B,C) 
         dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
       trace iso(A,B)--iso(C,D) 
         dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
       );
   elseif tour>=2:
     $=image(
       trace pavages(chemin,tour-1,coul);
       drawoptions(dashed evenly);
       trace symetrie(pavages(chemin,tour-1,coul+0.5blanc),B,C);
       trace rotation(symetrie(pavages(chemin,tour-1,coul+0.5blanc),B,C),B,-90);
       trace rotation(pavages(chemin,tour-1,coul+0.5blanc),B,90);
       drawoptions();
       A:=A shifted(u*(0,-(2**(tour-1))));
       B:=B shifted(u*(2**(tour-1),-(2**(tour-1))));
       C:=C shifted(u*(2**(tour-1),0));
       );
     trace A--B--C--D--cycle 
 	dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
     trace iso(A,D)--iso(B,C) 
 	dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
     trace iso(A,B)--iso(C,D) 
 	dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
   fi;
   $
 enddef;
 
 
Conversion au format PDF de pavagescarreexemples.10
Vers la liste des images
 beginfig(10);
   path NN;
   NN=u*(0,0)..u*(0.25,.1)..u*(0.5,0.7)..u*(1,1);
   trace pavagescar(NN,0,orange);
 endfig;
 
Conversion au format PDF de pavagescarreexemples.11
Vers la liste des images
 beginfig(11);
   trace pavagescar(NN,1,orange);
 endfig;
 
Conversion au format PDF de pavagescarreexemples.12
Vers la liste des images
 beginfig(12);
   trace pavagescar(NN,2,orange);
 endfig;
 
Conversion au format PDF de pavagescarreexemples.13
Vers la liste des images
 beginfig(13);
   trace pavagescar(NN,3,orange);
 endfig;
 
Conversion au format PDF de pavagescarreexemples.14
Vers la liste des images
 beginfig(14);
   trace pavagescar(NN,4,orange);
 endfig;
 
 end