input geometriesyr12;

figure(0,0,5u,5u);
pair O,A,B,C,H;
O=u*(0.75,0.75);
A=u*(4.25,0.75);
C=u*(0.75,4.25);
trace droite(O,A);
trace droite(O,C);
trace arccercle(A,C,O);
B=rotation(A,O,72);
trace triangle(O,A,B);
H=projection(B,O,A);
trace B--H;
trace codeperp(B,H,A,8);
nomme.llft(O);
nomme.urt(A);
nomme.top(B);
nomme.bot(H);
fin;

figure(0,0,10u,10u);
pair O,A,B,C,D,E,F,G,H,I,J,K,L,M,N;
O=u*(5,5);
path cc,cd,ce;
cc=cercles(O,4u);
trace cc withcolor gris;
A=pointarc(cc,180);
B=rotation(A,O,-60);
C=rotation(B,O,-60);
D=rotation(C,O,-60);
E=rotation(D,O,-60);
F=rotation(E,O,-60);
cd=A--B--C--D--E--F--cycle;
fill cd withcolor orange;
trace cd dashed evenly;
G=cercles(A,C) intersectionpoint cercles(D,B);
H=pointarc(cc,150);
I=cercles(H,abs(O-G)) intersectionpoint demidroite(G,O);
J=cc intersectionpoint cercles(A,I);
K=cc intersectionpoint cercles(J,abs(J-A));
L=reverse(cc) intersectionpoint cercles(K,abs(J-A));
M=reverse(cc) intersectionpoint cercles(L,abs(J-A));
ce=J--K--L--M--A--cycle;
fill ce withcolor jaune;
trace ce withpen pencircle scaled 2bp;
fin;

vardef coupdecompas(expr ab,ac,ad)=arccercle(pointarc(cercles(ab,ac),angle(ac-ab)-ad),pointarc(cercles(ab,ac),angle(ac-ab)+ad),ab)
enddef;

figure(0,0,10u,13u);
trace cc withcolor gris;
trace cd dashed evenly;
trace ce withpen pencircle scaled 2bp;
nomme.lft(A);
nomme.ulft(B);
nomme.urt(C);
nomme.rt(D);
nomme.lrt(E);
nomme.llft(F);
nomme.top(J);
nomme.urt(K);
nomme.lrt(L);
nomme.bot(M);
nomme.urt(O);
nomme.lrt(G);
nomme.lrt(I);
drawoptions(dashed dashpattern(on12bp off6bp on3bp off6bp));
trace droite(O,G);
trace A--D;
drawarrow arccercle(pointarc(cercles(A,E),300),pointarc(cercles(A,E),60),A);
trace A--C;
drawarrow reverse(arccercle(pointarc(cercles(D,B),100),pointarc(cercles(D,B),240),D));
drawarrow coupdecompas(H,I,10);  
drawarrow arccercle(pointarc(cercles(A,I),310),pointarc(cercles(A,I),85),A);
drawarrow coupdecompas(J,K,10);
drawarrow coupdecompas(K,L,10);
drawarrow coupdecompas(L,M,10);
drawoptions();
marque_p:="plein";
nomme.ulft(H);
fin;
end


