input geometriesyr16;
figureespace(-10u,-10u,10u,10u);
Initialisation(5,10,20,1000);
color O,A,A',E,F,G,H,P[];
O=(0,0,0);
F=(0,1/2,0);
E=symetrie(F,O);
G=(1/2,0,0);
H=symetrie(G,O);
A=(0,0,1/2);
A'=symetrie(A,O);
P1-O=1.35*(E-O+G-O);
P3=symetrie(P1,O);
P2-O=1.35*(F-O+G-O);
P4=symetrie(P2,O);
fillcolor:=0.9white;
transparence polygone(P1,P2,P3,P4);
trace segment(A,A') dashed evenly;
path cc;
cc=cercles(O,F,O,F,H);
trace subpath(0,length cc/2) of cc dashed evenly;
trace subpath(length cc/2,length cc) of cc;
path dd;
dd=cercles(O,F,O,F,A);
trace subpath(0,length dd/2) of dd;
trace (subpath(length dd/2,3*length dd/4) of dd)%
cutafter polygone(P1,P2,P3,P4) dashed evenly;
trace (subpath(3*length dd/4,length dd) of dd)%
cutbefore polygone(P1,P2,P3,P4) dashed evenly;
trace (subpath(length dd/2,3*length dd/4) of dd)%
cutbefore polygone(P1,P2,P3,P4);
trace (subpath(3*length dd/4,length dd) of dd)%
cutafter polygone(P1,P2,P3,P4);
trace polygone(P1,P2,P3,P4) cutafter (subpath(3*length dd/4,%
5*length dd/4) of dd);
trace reverse(polygone(P1,P2,P3,P4)) cutafter%
(subpath(1*length dd/4,length dd/2) of dd);
trace polygone(P1,P2,P3,P4) cutbefore (subpath(3*length dd/4,%
5*length dd/4) of dd) cutafter (subpath(1*length dd/4,%
length dd/2) of dd) dashed evenly;
trace polygone(E,G,F,H) dashed evenly;
trace chemin(G,A,E) dashed evenly;
trace chemin(F,A,H) dashed evenly;
trace chemin(E,F) dashed evenly;
trace chemin(G,H) dashed evenly;
marque_p:="plein";
drawoptions(withcolor rouge);
pointe(A,A',E,F,G,H,O);
drawoptions();
marque_p:="non";
nomme.top(A);
nomme.bot(A');
nomme.llft(G);
nomme.lft(E);
nomme.rt(F);
nomme.lrt(H);
nomme.lrt(O);
finespace;
end