prologues:=2;
input geometriesyr16
pair O[];
path cc[];
picture coupe[];
%1
figure(0,0,10u,9.5u);
trace grille(0.5) withcolor orange;
O1=pp(10,4);
O3-O1=pp(0,7);
O27-O1=pp(0,5.5);
O29-O1=pp(-1.5,5);
O28=symetrie(O29,O1,O3);
O4-O3=pp(4,5);
O5=symetrie(O4,O1,O3);
O6-O1=pp(1.75,3.5);
O7=symetrie(O6,O1,O3);
O8-O6=pp(0.25,-1);
O9=symetrie(O8,O1,O3);
O10-O1=pp(0,-1.5);
O11-O1=pp(0,2.5);
O12-O4=pp(0.5,0);
O13=symetrie(O12,O1,O3);
cc1=cercles(O1,1.5u);
cc11=cercles(O11,1.25u);
cc12=cercles(O12,0.75u);
cc13=cercles(O13,0.75u);
cc21=cercles(O27,3u);
cc28=cercles(O28,3.5u);
cc29=cercles(O29,3.5u);
cc3=cercles(O3,3u);
cc4=cercles(O4,1u);
cc5=cercles(O5,1u);
cc6=cercles(O6,0.5u);
cc7=cercles(O7,0.5u);
cc8=cercles(O8,0.75u);
cc9=cercles(O9,0.75u);
cc10=cercles(O10,u);
coupe8=image(
trace cc8 cutafter (subpath(0,length cc6/2) of cc6);
trace cc8 cutbefore (subpath(0,length cc1/8) of cc1);
trace cc8 cutbefore (subpath(length cc6/2,3*length cc6/4) of cc6) cutafter (subpath(length cc1/8,length cc1/4) of cc1);
);
coupe4=image(
trace cc4 cutafter (subpath(0.15*length cc21,length cc21/4) of cc21);
trace cc4 cutbefore (subpath(0,0.15*length cc21) of cc21);
);
O14-O1=pp(1,1);
O15=symetrie(O14,O1,O3);
O16-O14=pp(0.5,2.5);
O17=symetrie(O16,O1,O3);
cc16=cercles(O16,0.25u);
cc17=cercles(O17,0.25u);
O30=symetrie(cc10 intersectionpoint cc11,O1,O3);
cc14=cercles(O14,O30);
cc15=symetrie(cc14,O1,O3);
coupe14=image(
trace cc14 cutbefore segment(O30,O30) cutafter cc15;
);
O18-O1=pp(4,-2);
O19=symetrie(O18,O1,O3);
O20-O1=pp(0,1.5);
O40=cc10 intersectionpoint cc1;
cc18=cercles(O18,2u);
cc19=cercles(O19,2u);
cc20=cercles(O20,O40);
coupe18=image(
trace cc18 cutbefore reverse(cc15) cutafter cc20;
);
picture etape[];
etape1=image(
trace cc1;
trace cc28 cutafter reverse(cc4);
trace cc28 cutbefore (subpath(3*length cc1/4,length cc1) of cc1);
trace cc29 cutbefore cc5 cutafter (subpath(length cc1/2,3*length cc1/4) of cc1);
trace cc3 cutbefore (subpath(length cc4/4,length cc4/2) of cc4) cutafter (subpath(0,length cc5/2) of cc5);
trace cc6 cutbefore cc8 cutafter cc8;
trace cc7 cutafter (subpath(length cc9/4,length cc9/2) of cc9);
trace cc7 cutbefore (subpath(0,length cc9/4) of cc9);
trace coupe8;
trace symetrie(coupe8,O1,O3);
trace cc12;
trace cc13;
trace cc11 cutbefore cc10 cutafter cc10;
trace cc10 cutbefore cc1 cutafter cc1;
trace coupe4;
trace symetrie(coupe4,O1,O3);
trace cc16;
trace cc17;
trace coupe14;
trace symetrie(coupe14,O1,O3);
trace coupe18;
trace symetrie(coupe18,O1,O3);
trace cc20 cutbefore cc1 cutafter cc1;
remplis arccercle(cc21 intersectionpoint reverse(cc4),cc21 intersectionpoint cc4,O4)--(cc21 cutbefore reverse(cc4) cutafter cc4)--cycle;
remplis symetrie(arccercle(cc21 intersectionpoint reverse(cc4),cc21 intersectionpoint cc4,O4)--(cc21 cutbefore reverse(cc4) cutafter cc4)--cycle,O1,O3);
remplis cc12 withcolor (0.2,0.2,0.2);
remplis cc13 withcolor (0.2,0.2,0.2);
remplis reverse(arccercle(O40,symetrie(O40,O1,O3),O20))--arccercle(O40,symetrie(O40,O1,O3),O1)--cycle;
remplis buildcycle((cc8 cutbefore (subpath(0,length cc1/8) of cc1))--(cc8 cutafter (subpath(0,length cc6/2) of cc6))--(cc6 cutbefore cc8 cutafter cc8)--(cc8 cutbefore (subpath(length cc6/2,3*length cc6/4) of cc6) cutafter (subpath(length cc1/8,length cc1/4) of cc1)),reverse(cc1));
remplis symetrie(buildcycle((cc8 cutbefore (subpath(0,length cc1/8) of cc1))--(cc8 cutafter (subpath(0,length cc6/2) of cc6))--(cc6 cutbefore cc8 cutafter cc8)--(cc8 cutbefore (subpath(length cc6/2,3*length cc6/4) of cc6) cutafter (subpath(length cc1/8,length cc1/4) of cc1)),reverse(cc1)),O1,O3);
remplis cc16 withcolor blanc;
remplis cc17 withcolor blanc;
marque_p:="plein";
pointe(O16,O17);
marque_p:="non";
);
trace etape1;
fin;
figure(0,0,10u,9.5u);
trace etape1;
fin;
end