input latexmp; setupLaTeXMP(class="article",options="12pt",fontencoding="T1",inputencoding="latin1",language="frenchb",packages="fourier,textpathmp"); input textpath; prologues:=2; input geometriesyr16; figure(-8.5u,-8.5u,8.5u,8.5u); pair O,A,B,P[],Q[],M[]; O=(0,0); A-O=u*(0,8); B=3/5[O,A]; path cc,cd; cc=cercles(O,A); cd=cercledia(B,O); for k=0 step 1 until 360: P[k]=pointarc(cc,k); if abs((droite(P[k],O) intersectionpoint cd)-O)<0.1: Q[k]=droite(P[k],O) intersectionpoint reverse(cd); else: Q[k]=droite(P[k],O) intersectionpoint cd; fi; M[k]=parallele(O,B,Q[k]) intersectionpoint perpendiculaire(O,B,P[k]); endfor; drawoptions(dashed evenly withcolor gris); trace cc; trace cd; drawoptions(withcolor rouge); path huit; huit=M0 for k=1 step 1 until 360: --M[k] endfor --cycle; trace huit; drawoptions(withcolor bleu); trace textpath("\Large Huit",huit,0.6); fin; end