Retour

Source : oeuf.mp

Animation flash


oeuf.mp
prologues:=2;
input geometriesyr16;
%Points
u:=0.3cm;
vues=5;
figure(-4u,-5u,33u,40u);
pair p[];
p0=u*(0.5,18);
p2=u*(8.5,18);
p1=u*(4.5,14);
p3=u*(4.5,22);
p4=(p0--p2) intersectionpoint (p1--p3);
path cer[],axeh,axev;
cer0=cercles(p4,abs(p4-p0));
cer1=cercles(p0,abs(p2-p0));
cer2=cercles(p2,abs(p2-p0));
p5=cer1 intersectionpoint demidroite(p0,p3);
cer3=cercles(p3,abs(p5-p3));
cer5=cercles(p1,abs(p5-p3));
p9=cer5 intersectionpoint demidroite(p4,p1);
cer4=cercles(p9,abs(p5-p3));
p6=cer2 intersectionpoint demidroite(p2,p3);
p7=cer4 intersectionpoint demidroite(p4,p2);
p8=cer4 intersectionpoint demidroite(p4,p0);
p10=cer3 intersectionpoint demidroite(p4,p3);
lc1e=angle(p5-p0)*(length cer1)/360;
lc2f=angle(p6-p2)*(length cer2)/360;
lc3e=angle(p5-p3)*(length cer3)/360;
lc3f=angle(p6-p3)*(length cer3)/360;
lc3g=angle(p10-p3)*(length cer3)/360;
pair q[];
q0=u*(15,18);
q1=q0 shifted(abs(p9-p7),0);
q2=q1 shifted(((sqrt2)/2)*(abs(p3-p0),abs(p3-p0)));
q3=q0 shifted(u*(0,11));
q4=q3 shifted(((sqrt2)/2)*(abs(p4-p0))*(1,1));
q5=q3 shifted(abs(p3-p2)*(0,1));
q6=q5 shifted(((sqrt2)/2)*(abs(p5-p3))*(-1,1));
q7=q6 shifted(-abs(p9-p7),0);
q8=q0 shifted(u*(0,-15));
q9=q8 shifted(-abs(p9-p7),0);
q10=q9 shifted(0,abs(p9-p7));
q11=q10 shifted(((sqrt2)/2)*(abs(p9-p1))*(-1,1));
picture pieces[];
path piece[];
piece1=p2--(subpath(0,lc1e) of cer1)--p3--cycle;
pieces1=image(
  fill piece1 withcolor red;
  );
piece2=p0--p3--(subpath(lc2f,(length cer2)/2) of cer2)--cycle;
pieces2=image(
  fill piece2 withcolor blue;
  );
piece3=p0--p4--p3--cycle;
pieces3=image(
  fill piece3 withcolor green;
  );
piece4=p4--p2--p3--cycle;
pieces4=image(
  fill piece4 withcolor (green+red);
  );
piece5=p3--p5--(subpath(lc3e,lc3g) of cer3)--p3--cycle;
pieces5=image(
  fill piece5 withcolor (green+blue);
  );
piece6=p3--p6--(subpath(lc3f,lc3g) of cer3)--cycle;
pieces6=image(
  fill piece6 withcolor 0.35[red,(green+blue)];
  );
piece7=p9--p8--p0--(subpath((length cer0)/2,3*(length cer0)/4) of cer0)--p1--cycle;
pieces7=image(
  fill piece7 withcolor (red+blue);
  );
piece8=p7--p9--p1--(subpath(3*(length cer0)/4,length cer0) of cer0)--p2--cycle;
pieces8=image(
  fill piece8 withcolor 0.75[blue,green];
  );
piece9=p7--p8--p9--cycle;
pieces9=image(
  fill piece9 withcolor 0.56[green,red+blue];
  );
picture oeuf;
oeuf=image(
  draw p0--p2;
  draw p1--p9;
  draw p4--p3;
  draw p7--p8--p9--cycle;
  draw p0--p3--p6;
  draw p2--p3--p5;
  draw subpath((length cer0)/2,length cer0) of cer0;
  draw subpath(0,lc1e) of cer1;
  draw subpath(lc2f,(length cer2)/2) of cer2;
  draw (subpath(lc3e,lc3g) of cer3)--p3;
  draw (subpath(lc3f,lc3g) of cer3)--p3;
  );
picture animation[];
%Animation1
animation1=image(
  draw (pieces1 shifted(q2-p3)) rotatedabout(q2,45);
  draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
  draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
  draw (pieces6 shifted(q0-p3)) rotatedabout(q0,(90-(angle(p6-p3)-angle(p10-p3))));
  draw (pieces7 shifted(q0-p9)) rotatedabout(q0,-270+angle(p8-p9));
  draw (pieces9 shifted(q0-p7)) rotatedabout(q0,135);
  draw (pieces5 shifted(q1-p3)) rotatedabout(q1,-180+angle(p10-p3)-angle(p5-p3));
  draw (pieces2 shifted(q1-p3)) rotatedabout(q1,180);
  draw (pieces8 shifted(q2-p7)) rotatedabout(q2,225);
  );
%Animation2
animation2=image(
  draw (pieces1 shifted(q6-p3));
  draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
  draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
  draw (pieces7 shifted(q4-p8)) rotatedabout(q4,-angle(p9-p8));
  draw (pieces2 shifted(q3-p0)) rotatedabout(q3,45);
  draw (pieces5 shifted(q5-p3)) rotatedabout(q5,90);
  draw (pieces8 shifted(q6-p9)) rotatedabout(q6,135);
  draw (pieces6 shifted(q7-p3)) rotatedabout(q7,45);
  draw (pieces9 shifted(q7-p9)) rotatedabout(q7,135);
  );
%Animation3
animation3=image(
  draw (pieces1 shifted(q9-p3)) rotatedabout(q9,45);
  draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
  draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
  draw (pieces9 shifted(q8-p8)) rotatedabout(q8,-135);
  draw (pieces5 shifted(q9-p3)) rotatedabout(q9,180);
  draw (pieces8 shifted(q9-p7)) rotatedabout(q9,-135);
  draw (pieces6 shifted(q11-p3)) rotatedabout(q11,-135);
  draw (pieces7 shifted(q11-p8)) rotatedabout(q11,180);
  draw (pieces2 shifted(q11-p3));
  );
trace feuillet;
draw oeuf;
trace animation1;
trace animation2;
trace animation3;
fin;
figure(-4u,-5u,33u,40u);
trace feuillet;
draw pieces1;
draw oeuf;
fin;
for vue=1 upto vues:
  figure(-4u,-5u,33u,40u);
  trace feuillet;
  draw oeuf;
  draw (pieces1 shifted ((vue/vues)*(q2-p3))) rotatedabout(q2,(vue/vues)*45);
  draw (pieces1 shifted ((vue/vues)*(q6-p3)));
  draw (pieces1 shifted ((vue/vues)*(q9-p3))) rotatedabout(q9,(vue/vues)*45);
  fin;
endfor
figure(-4u,-5u,33u,40u);
trace feuillet;
draw oeuf;
draw pieces2;
draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
draw pieces1 shifted (q6-p3);
draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
fin;
for vue=1 upto vues:
 figure(-4u,-5u,33u,40u);
    trace feuillet;
    draw oeuf;
    draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
    draw pieces1 shifted (q6-p3);
    draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
    draw (pieces2 shifted ((vue/vues)*(q1-p3))) rotatedabout(q1,(vue/vues)*180);
    draw (pieces2 shifted ((vue/vues)*(q3-p0))) rotatedabout(q3,(vue/vues)*45);
    draw (pieces2 shifted ((vue/vues)*(q11-p3)));
  fin;
endfor
figure(-4u,-5u,33u,40u);
  trace feuillet;
  draw oeuf;
  draw pieces3;
  draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
  draw pieces1 shifted (q6-p3);
  draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
  draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
  draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
  draw pieces2 shifted (q11-p3);
fin;
for vue=1 upto vues:
figure(-4u,-5u,33u,40u);
    trace feuillet;
    draw oeuf;
    draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
    draw pieces1 shifted (q6-p3);
    draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
    draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
    draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
    draw pieces2 shifted (q11-p3);
    draw (pieces3 shifted((vue/vues)*(q0-p4))) rotatedabout(q0,(vue/vues)*135);
    draw (pieces3 shifted((vue/vues)*(q3-p4))) rotatedabout(q3,(vue/vues)*135);
    draw (pieces3 shifted((vue/vues)*(q8-p4))) rotatedabout(q8,(vue/vues)*135);
  fin;
endfor
figure(-4u,-5u,33u,40u);
  trace feuillet;
  draw oeuf;
  draw pieces4;
  draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
  draw pieces1 shifted (q6-p3);
  draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
  draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
  draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
  draw pieces2 shifted (q11-p3);
  draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
  draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
  draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
fin;
for vue=1 upto vues:
figure(-4u,-5u,33u,40u);
    trace feuillet;
    draw oeuf;
    draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
    draw pieces1 shifted (q6-p3);
    draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
    draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
    draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
    draw pieces2 shifted (q11-p3);
    draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
    draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
    draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
    draw (pieces4 shifted((vue/vues)*(q0-p3))) rotatedabout(q0,(vue/vues)*(-90));
    draw (pieces4 shifted((vue/vues)*(q3-p3))) rotatedabout(q3,(vue/vues)*135);
    draw (pieces4 shifted((vue/vues)*(q8-p3))) rotatedabout(q8,(vue/vues)*45);
  fin;
endfor
figure(-4u,-5u,33u,40u);
  trace feuillet;
  draw oeuf;
  draw pieces5;
  draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
  draw pieces1 shifted (q6-p3);
  draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
  draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
  draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
  draw pieces2 shifted (q11-p3);
  draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
  draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
  draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
  draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
  draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
  draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
fin;
for vue=1 upto vues:
figure(-4u,-5u,33u,40u);
    trace feuillet;
    draw oeuf;
    draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
    draw pieces1 shifted (q6-p3);
    draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
    draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
    draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
    draw pieces2 shifted (q11-p3);
    draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
    draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
    draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
    draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
    draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
    draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
    draw (pieces5 shifted((vue/vues)*(q1-p3))) rotatedabout(q1,(vue/vues)*(-180+angle(p10-p3)-angle(p5-p3)));
    draw (pieces5 shifted((vue/vues)*(q5-p3))) rotatedabout(q5,(vue/vues)*90);
    draw (pieces5 shifted((vue/vues)*(q9-p3))) rotatedabout(q9,(vue/vues)*180);
  fin;
endfor
figure(-4u,-5u,33u,40u);
  trace feuillet;
  draw oeuf;
  draw pieces6;
  draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
  draw pieces1 shifted (q6-p3);
  draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
  draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
  draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
  draw pieces2 shifted (q11-p3);
  draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
  draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
  draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
  draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
  draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
  draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
  draw (pieces5 shifted(q1-p3)) rotatedabout(q1,-180+angle(p10-p3)-angle(p5-p3));
  draw (pieces5 shifted(q5-p3)) rotatedabout(q5,90);
  draw (pieces5 shifted(q9-p3)) rotatedabout(q9,180);
fin;
for vue=1 upto vues:
figure(-4u,-5u,33u,40u);
    trace feuillet;
    draw oeuf;
    draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
    draw pieces1 shifted (q6-p3);
    draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
    draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
    draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
    draw pieces2 shifted (q11-p3);
    draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
    draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
    draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
    draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
    draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
    draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
    draw (pieces5 shifted(q1-p3)) rotatedabout(q1,-180+angle(p10-p3)-angle(p5-p3));
    draw (pieces5 shifted(q5-p3)) rotatedabout(q5,90);
    draw (pieces5 shifted(q9-p3)) rotatedabout(q9,180);
    draw (pieces6 shifted((vue/vues)*(q0-p3))) rotatedabout(q0,(vue/vues)*(90-(angle(p6-p3)-angle(p10-p3))));
    draw (pieces6 shifted((vue/vues)*(q7-p3))) rotatedabout(q7,(vue/vues)*45);
    draw (pieces6 shifted((vue/vues)*(q11-p3))) rotatedabout(q11,(vue/vues)*(-135));
fin;
endfor
figure(-4u,-5u,33u,40u);
  trace feuillet;
  draw oeuf;
  draw pieces7;
  draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
  draw pieces1 shifted (q6-p3);
  draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
  draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
  draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
  draw pieces2 shifted (q11-p3);
  draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
  draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
  draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
  draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
  draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
  draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
  draw (pieces5 shifted(q1-p3)) rotatedabout(q1,-180+angle(p10-p3)-angle(p5-p3));
  draw (pieces5 shifted(q5-p3)) rotatedabout(q5,90);
  draw (pieces5 shifted(q9-p3)) rotatedabout(q9,180);
  draw (pieces6 shifted(q0-p3)) rotatedabout(q0,(90-(angle(p6-p3)-angle(p10-p3))));
  draw (pieces6 shifted(q7-p3)) rotatedabout(q7,45);
  draw (pieces6 shifted(q11-p3)) rotatedabout(q11,-135);
fin;
for vue=1 upto vues:
figure(-4u,-5u,33u,40u);
    trace feuillet;
    draw oeuf;
    draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
    draw pieces1 shifted (q6-p3);
    draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
    draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
    draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
    draw pieces2 shifted (q11-p3);
    draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
    draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
    draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
    draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
    draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
    draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
    draw (pieces5 shifted(q1-p3)) rotatedabout(q1,-180+angle(p10-p3)-angle(p5-p3));
    draw (pieces5 shifted(q5-p3)) rotatedabout(q5,90);
    draw (pieces5 shifted(q9-p3)) rotatedabout(q9,180);
    draw (pieces6 shifted(q0-p3)) rotatedabout(q0,(90-(angle(p6-p3)-angle(p10-p3))));
    draw (pieces6 shifted(q7-p3)) rotatedabout(q7,45);
    draw (pieces6 shifted(q11-p3)) rotatedabout(q11,-135);
    draw (pieces7 shifted((vue/vues)*(q0-p9))) rotatedabout(q0,(vue/vues)*(-270+angle(p8-p9)));
    draw (pieces7 shifted((vue/vues)*(q4-p8))) rotatedabout(q4,(vue/vues)*(-angle(p9-p8)));
    draw (pieces7 shifted((vue/vues)*(q11-p8))) rotatedabout(q11,(vue/vues)*180);
fin;
endfor
figure(-4u,-5u,33u,40u);
  trace feuillet;
  draw oeuf;
  draw pieces8;
  draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
  draw pieces1 shifted (q6-p3);
  draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
  draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
  draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
  draw pieces2 shifted (q11-p3);
  draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
  draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
  draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
  draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
  draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
  draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
  draw (pieces5 shifted(q1-p3)) rotatedabout(q1,-180+angle(p10-p3)-angle(p5-p3));
  draw (pieces5 shifted(q5-p3)) rotatedabout(q5,90);
  draw (pieces5 shifted(q9-p3)) rotatedabout(q9,180);
  draw (pieces6 shifted(q0-p3)) rotatedabout(q0,(90-(angle(p6-p3)-angle(p10-p3))));
  draw (pieces6 shifted(q7-p3)) rotatedabout(q7,45);
  draw (pieces6 shifted(q11-p3)) rotatedabout(q11,-135);
  draw (pieces7 shifted(q0-p9)) rotatedabout(q0,-270+angle(p8-p9));
  draw (pieces7 shifted(q4-p8)) rotatedabout(q4,-angle(p9-p8));
  draw (pieces7 shifted(q11-p8)) rotatedabout(q11,180);
fin;
for vue=1 upto vues:
figure(-4u,-5u,33u,40u);
    trace feuillet;
    draw oeuf;
    draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
    draw pieces1 shifted (q6-p3);
    draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
    draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
    draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
    draw pieces2 shifted (q11-p3);
    draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
    draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
    draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
    draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
    draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
    draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
    draw (pieces5 shifted(q1-p3)) rotatedabout(q1,-180+angle(p10-p3)-angle(p5-p3));
    draw (pieces5 shifted(q5-p3)) rotatedabout(q5,90);
    draw (pieces5 shifted(q9-p3)) rotatedabout(q9,180);
    draw (pieces6 shifted(q0-p3)) rotatedabout(q0,(90-(angle(p6-p3)-angle(p10-p3))));
    draw (pieces6 shifted(q7-p3)) rotatedabout(q7,45);
    draw (pieces6 shifted(q11-p3)) rotatedabout(q11,-135);
    draw (pieces7 shifted(q0-p9)) rotatedabout(q0,-270+angle(p8-p9));
    draw (pieces7 shifted(q4-p8)) rotatedabout(q4,-angle(p9-p8));
    draw (pieces7 shifted(q11-p8)) rotatedabout(q11,180);
    draw (pieces8 shifted((vue/vues)*(q2-p7))) rotatedabout(q2,(vue/vues)*225);
    draw (pieces8 shifted((vue/vues)*(q6-p9))) rotatedabout(q6,(vue/vues)*135);
    draw (pieces8 shifted((vue/vues)*(q9-p7))) rotatedabout(q9,(vue/vues)*(-135));
fin;
endfor
figure(-4u,-5u,33u,40u);
  trace feuillet;
  draw oeuf;
  draw pieces9;
  draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
  draw pieces1 shifted (q6-p3);
  draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
  draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
  draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
  draw pieces2 shifted (q11-p3);
  draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
  draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
  draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
  draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
  draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
  draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
  draw (pieces5 shifted(q1-p3)) rotatedabout(q1,-180+angle(p10-p3)-angle(p5-p3));
  draw (pieces5 shifted(q5-p3)) rotatedabout(q5,90);
  draw (pieces5 shifted(q9-p3)) rotatedabout(q9,180);
  draw (pieces6 shifted(q0-p3)) rotatedabout(q0,(90-(angle(p6-p3)-angle(p10-p3))));
  draw (pieces6 shifted(q7-p3)) rotatedabout(q7,45);
  draw (pieces6 shifted(q11-p3)) rotatedabout(q11,-135);
  draw (pieces7 shifted(q0-p9)) rotatedabout(q0,-270+angle(p8-p9));
  draw (pieces7 shifted(q4-p8)) rotatedabout(q4,-angle(p9-p8));
  draw (pieces7 shifted(q11-p8)) rotatedabout(q11,180);
  draw (pieces8 shifted(q2-p7)) rotatedabout(q2,225);
  draw (pieces8 shifted(q6-p9)) rotatedabout(q6,135);
  draw (pieces8 shifted(q9-p7)) rotatedabout(q9,-135);
fin;
for vue=1 upto vues:
figure(-4u,-5u,33u,40u);
    trace feuillet;
    draw oeuf;
    draw (pieces1 shifted (q2-p3)) rotatedabout(q2,45);
    draw pieces1 shifted (q6-p3);
    draw (pieces1 shifted (q9-p3)) rotatedabout(q9,45);
    draw (pieces2 shifted (q1-p3)) rotatedabout(q1,180);
    draw (pieces2 shifted (q3-p0)) rotatedabout(q3,45);
    draw pieces2 shifted (q11-p3);
    draw (pieces3 shifted(q0-p4)) rotatedabout(q0,135);
    draw (pieces3 shifted(q3-p4)) rotatedabout(q3,135);
    draw (pieces3 shifted(q8-p4)) rotatedabout(q8,135);
    draw (pieces4 shifted(q0-p3)) rotatedabout(q0,-90);
    draw (pieces4 shifted(q3-p3)) rotatedabout(q3,135);
    draw (pieces4 shifted(q8-p3)) rotatedabout(q8,45);
    draw (pieces5 shifted(q1-p3)) rotatedabout(q1,-180+angle(p10-p3)-angle(p5-p3));
    draw (pieces5 shifted(q5-p3)) rotatedabout(q5,90);
    draw (pieces5 shifted(q9-p3)) rotatedabout(q9,180);
    draw (pieces6 shifted(q0-p3)) rotatedabout(q0,(90-(angle(p6-p3)-angle(p10-p3))));
    draw (pieces6 shifted(q7-p3)) rotatedabout(q7,45);
    draw (pieces6 shifted(q11-p3)) rotatedabout(q11,-135);
    draw (pieces7 shifted(q0-p9)) rotatedabout(q0,-270+angle(p8-p9));
    draw (pieces7 shifted(q4-p8)) rotatedabout(q4,-angle(p9-p8));
    draw (pieces7 shifted(q11-p8)) rotatedabout(q11,180);
    draw (pieces8 shifted(q2-p7)) rotatedabout(q2,225);
    draw (pieces8 shifted(q6-p9)) rotatedabout(q6,135);
    draw (pieces8 shifted(q9-p7)) rotatedabout(q9,-135);
    draw (pieces9 shifted((vue/vues)*(q0-p7))) rotatedabout(q0,(vue/vues)*135);
    draw (pieces9 shifted((vue/vues)*(q7-p9))) rotatedabout(q7,(vue/vues)*135);
    draw (pieces9 shifted((vue/vues)*(q8-p8))) rotatedabout(q8,(vue/vues)*(-135));
fin;
endfor
end
picture cadre;
cadre=image(
  drawoptions(withcolor blanc);
  for vue=1 upto vues:
    draw (pieces1 shifted ((vue/vues)*(q2-p3))) rotatedabout(q2,(vue/vues)*45);
    draw (pieces1 shifted ((vue/vues)*(q6-p3)));
    draw (pieces1 shifted ((vue/vues)*(q9-p3))) rotatedabout(q9,(vue/vues)*45);
    draw (pieces2 shifted ((vue/vues)*(q1-p3))) rotatedabout(q1,(vue/vues)*180);
    draw (pieces2 shifted ((vue/vues)*(q3-p0))) rotatedabout(q3,(vue/vues)*45);
    draw (pieces2 shifted ((vue/vues)*(q11-p3)));
    draw (pieces3 shifted((vue/vues)*(q0-p4))) rotatedabout(q0,(vue/vues)*135);
    draw (pieces3 shifted((vue/vues)*(q3-p4))) rotatedabout(q3,(vue/vues)*135);
    draw (pieces3 shifted((vue/vues)*(q8-p4))) rotatedabout(q8,(vue/vues)*135);
    draw (pieces4 shifted((vue/vues)*(q0-p3))) rotatedabout(q0,(vue/vues)*(-90));
    draw (pieces4 shifted((vue/vues)*(q3-p3))) rotatedabout(q3,(vue/vues)*135);
    draw (pieces4 shifted((vue/vues)*(q8-p3))) rotatedabout(q8,(vue/vues)*45);
    draw (pieces5 shifted((vue/vues)*(q1-p3))) rotatedabout(q1,(vue/vues)*(-180+angle(p10-p3)-angle(p5-p3)));
    draw (pieces5 shifted((vue/vues)*(q5-p3))) rotatedabout(q5,(vue/vues)*90);
    draw (pieces5 shifted((vue/vues)*(q9-p3))) rotatedabout(q9,(vue/vues)*180);
    draw (pieces6 shifted((vue/vues)*(q0-p3))) rotatedabout(q0,(vue/vues)*(90-(angle(p6-p3)-angle(p10-p3))));
    draw (pieces6 shifted((vue/vues)*(q7-p3))) rotatedabout(q7,(vue/vues)*45);
    draw (pieces6 shifted((vue/vues)*(q11-p3))) rotatedabout(q11,(vue/vues)*(-135));
    draw (pieces7 shifted((vue/vues)*(q0-p9))) rotatedabout(q0,(vue/vues)*(-270+angle(p8-p9)));
    draw (pieces7 shifted((vue/vues)*(q4-p8))) rotatedabout(q4,(vue/vues)*(-angle(p9-p8)));
    draw (pieces7 shifted((vue/vues)*(q11-p8))) rotatedabout(q11,(vue/vues)*180);
    draw (pieces8 shifted((vue/vues)*(q2-p7))) rotatedabout(q2,(vue/vues)*225);
    draw (pieces8 shifted((vue/vues)*(q6-p9))) rotatedabout(q6,(vue/vues)*135);
    draw (pieces8 shifted((vue/vues)*(q9-p7))) rotatedabout(q9,(vue/vues)*(-135));
    draw (pieces9 shifted((vue/vues)*(q0-p7))) rotatedabout(q0,(vue/vues)*135);
    draw (pieces9 shifted((vue/vues)*(q7-p9))) rotatedabout(q7,(vue/vues)*135);
    draw (pieces9 shifted((vue/vues)*(q8-p8))) rotatedabout(q8,(vue/vues)*(-135));
  endfor
  drawoptions();
  );