Fichier serpent.mp (figure 1) — Modifié le 21 Mars 2008 à 22 h 28

serpent.mp (figure 1)
Source

prologues:=2;
input geometriesyr16
%1
figure(0,0,18u,17u);
trace grille(0.5) withcolor orange;
origine((18,24));
pair A,B,C,D,E,F,F',P,N,P',N',L,U,V,J,Z,Z',H,M,M',G,K;
A=pp(0,0);
B=pp(17,-17);
C=pp(-17,-17);
D=pp(-9,0);
E=pp(9,0);
F=pp(0,6);
F'=pp(0,-6);
P=pp(-3,4);
N=symetrie(P,F,F');
P'=symetrie(P,F);
N'=symetrie(N,F);
L=pp(0,-9);
U=pp(-5,5);
V=symetrie(U,F,F');
J=pp(0,-2);
Z=pp(9,-5);
Z'=symetrie(Z,F,F');
H=pp(0,-17);
M=pp(-4,-3);
M'=symetrie(M,F,F');
G=pp(0,-19);
K=pp(0,-23);
path cc[];
cc1=cercles(A,F);
cc2=cercles(D,2.5u);
cc3=cercles(E,2.5u);
cc4=cercles(P,A);
cc5=cercles(N,A);
cc7=cercles(A,L);
cc8=cercles(D,P);
cc9=cercles(E,N);
cc10=cercles(N',P);
cc11=cercles(P',N);
cc50=cercles(U,0.5u);
cc51=cercles(V,0.5u);
cc12=cercles(F',A);
cc13=cercles(J,4.5u);
cc14=cercles(B,Z);
cc15=cercles(C,Z');
cc16=cercles(B,H);
cc17=cercles(C,H);
cc18=cercles(M,u);
cc19=cercles(M',u);
cc20=cercles(L,2.4u);
cc21=cercles(C,7u);
cc22=cercles(B,7u);
cc23=cercles(C,7.25u);
cc24=cercles(B,7.25u);
cc25=cercles(C,7.5u);
cc26=cercles(B,7.5u);
cc27=cercles(H,2u);
cc28=cercles(G,K);
cc29=cercles(K,G);
cc30=cercles(K,G+u*(0,0.25));
picture etape[];
etape1=image(
  trace cc1 cutbefore cc3 cutafter (subpath(0,length cc2/2) of cc2);
  trace cc5 cutbefore cc3 cutafter cc7;
  trace symetrie(cc5 cutbefore cc3 cutafter cc7,F,F');
  trace cc7 cutbefore (subpath(length cc5/4,length cc5/2) of cc5) cutafter (subpath(0,length cc4/4) of cc4);
  trace cc8 cutbefore cc1 cutafter (subpath(length cc10/2,3*length cc10/4) of cc10);
  trace symetrie(cc8 cutbefore cc1 cutafter (subpath(length cc10/2,3*length cc10/4) of cc10),F,F');
  trace cc10 cutbefore cc8 cutafter (subpath(length cc1/4,length cc1/2) of cc1);
  trace symetrie(cc10 cutbefore cc8 cutafter (subpath(length cc1/4,length cc1/2) of cc1),F,F');
  trace cc51 cutbefore cc11 cutafter (subpath(length cc9/4,0.35*length cc9) of cc9);
  trace cc51 cutbefore (subpath(0.35*length cc9,length cc9/2) of cc9) cutafter cc11;
  trace symetrie(cc51 cutbefore cc11 cutafter (subpath(length cc9/4,0.35*length cc9) of cc9),F,F');
  trace symetrie(cc51 cutbefore (subpath(0.35*length cc9,length cc9/2) of cc9) cutafter cc11,F,F');
  );
etape2=image(
  trace etape1;
  trace cc15 cutbefore cc12 cutafter segment(Z',Z');
  trace symetrie(cc15 cutbefore cc12 cutafter segment(Z',Z'),F,F');
  trace cc2 cutbefore cc1 cutafter cc15;
  trace symetrie(cc2 cutbefore cc1 cutafter cc15,F,F');
  trace cc17 cutbefore (subpath(length cc12/4,length cc12/2) of cc12) cutafter cc13;
  trace symetrie(cc17 cutbefore (subpath(length cc12/4,length cc12/2) of cc12) cutafter cc13,F,F');
  trace cc13 cutbefore cc12 cutafter cc12;
  trace cc12 cutafter (subpath(length cc13/2,3*length cc13/4) of cc13);
  trace cc12 cutbefore (subpath(3*length cc13/4,length cc13) of cc13);
  trace cc19 cutbefore demidroite(A,B) cutafter demidroite(A,B);
  trace symetrie(cc19 cutbefore demidroite(A,B) cutafter demidroite(A,B),F,F');
  trace demidroite(A,C) cutbefore cc18 cutafter cc18;
  trace symetrie(demidroite(A,C) cutbefore cc18 cutafter cc18,F,F');
  );
etape3=image(
  trace etape2;
  trace cc24 cutbefore (subpath(3*length cc13/4,0.85*length cc13) of cc13) cutafter cc30;
  trace symetrie(cc24 cutbefore (subpath(3*length cc13/4,0.85*length cc13) of cc13) cutafter cc30,F,F');
  trace cc26 cutbefore (subpath(3*length cc13/4,0.85*length cc13) of cc13) cutafter cc30;
  trace symetrie(cc26 cutbefore (subpath(3*length cc13/4,0.85*length cc13) of cc13) cutafter cc30,F,F');
  trace cc20 cutbefore cc13 cutafter cc23;
  trace symetrie(cc20 cutbefore cc13 cutafter cc23,F,F');
  trace cc21 cutbefore cc28 cutafter cc20;
  trace symetrie(cc21 cutbefore cc28 cutafter cc20,F,F');
  trace cc28 cutafter (subpath(length cc24/4,length cc24/2) of cc24);
  trace cc28 cutbefore cc23;
  trace cc27 cutbefore cc28 cutafter cc28;
  trace cc30 cutbefore cc27 cutafter cc27;
  trace cc29 cutbefore cc27 cutafter cc27;
  );
trace etape3;
fin;
figure(0,0,18u,17u);
trace etape3;
fin;
end