input latexmp;
setupLaTeXMP(class="article",options="12pt",fontencoding="T1",inputencoding="latin1",language="frenchb",packages="fourier,frcursive,textpathmp");
input textpath;
input geometriesyr16;
figure(0,0,10u,10u);
pair O,A,B,P[],Q[],N[],M[];
O=u*(5,5);
A-O=u*(3.5,1);
B=rotation(A,O,90);
path cc;
cc=cercles(O,A);
for k=0 step 1 until 360:
P[k]=pointarc(cc,k);
N[k]=droite(O,A) intersectionpoint perpendiculaire(O,A,P[k]);
Q[k]=droite(O,B) intersectionpoint perpendiculaire(O,B,P[k]);
M[k]=droite(N[k],Q[k]) intersectionpoint perpendiculaire(N[k],Q[k],P[k]);
endfor;
path astroide;
astroide=M0
for k=1 upto 360:
--M[k]
endfor
--cycle;
drawoptions(dashed evenly withcolor gris);
trace cc;
drawoptions(withcolor rouge);
trace astroide;
drawoptions(withcolor bleu);
trace textpath("\Large Astroïde",reverse(astroide),0.55);
drawoptions();
fin;
end