input geometriesyr16; u:=7.5mm; figure(-10u,-10u,10u,10u); path cc,cd; pair O,T[],C[],M[]; numeric R,r; R=4; r=1; O=(0,0); C0=u*(R+r,0); cc=cercles(O,R*u); trace cc withcolor bleu; for j=0 upto 360: T[j]=pointarc(cc,j); C[j]:=rotation(C0,O,j); endfor; marque_p:="plein"; for j=0 step (360/72) until 360: M[j]:=rotation(T[j],C[j],R*(angle(T[j]))/r); pointe(M[j]); drawoptions(dashed evenly); trace cercles(C[j],r*u); drawoptions(); endfor; path epi; epi=M[0].. for j=(360/72) step (360/72) until 360: M[j].. endfor cycle; trace epi withcolor orange; fin; figure(-10u,-10u,10u,10u); path cc,cd; pair O,T[],C[],M[]; numeric R,r; R=6; r=1; O=(0,0); C0=u*(R-r,0); cc=cercles(O,R*u); trace cc withcolor bleu; for j=0 upto 360: T[j]=pointarc(cc,j); C[j]:=rotation(C0,O,j); endfor; marque_p:="plein"; for j=0 step (360/72) until 360: M[j]:=rotation(T[j],C[j],-R*(angle(T[j]))/r); pointe(M[j]); drawoptions(dashed evenly); trace cercles(C[j],r*u); drawoptions(); endfor; path hypo; hypo=M[0].. for j=(360/72) step (360/72) until 360: M[j].. endfor cycle; trace hypo withcolor orange; fin; end