input latexmp;
setupLaTeXMP(class="article",options="12pt",fontencoding="T1",inputencoding="latin1",language="frenchb",packages="fourier,textpathmp");
input textpath;
prologues:=2;
input geometriesyr16;
figure(0,u,10u,9u);
pair C,D,O,A[],B[],E[],M[],N[];
C=u*(0.5,5);
D-C=u*(9,0);
O=iso(C,D);
C:=symetrie(O,C);
D:=symetrie(O,D);
path dd,cc[];
dd=perpendiculaire(C,D,O);
for k=0 step 0.1 until 100:
A[k]=(k/100)[C,D];
cc[k]=cercles(A[k],9u);
if (k=0) or (k=100):
B[k]=O;
E[k]=O;
else:
B[k]=cc[k] intersectionpoint dd;
E[k]=symetrie(B[k],C,D);
fi;
M[k]=droite(A[k],B[k]) intersectionpoint perpendiculaire(A[k],B[k],O);
N[k]=droite(A[k],E[k]) intersectionpoint perpendiculaire(A[k],E[k],O);
endfor;
drawoptions(dashed evenly withcolor gris);
trace segment(C,D);
trace dd;
drawoptions(withcolor rouge);
path rosace;
rosace=M0
for k=0.1 step 0.1 until 100:
--M[k]
endfor
for k=0 step 0.1 until 100:
--N[k]
endfor
--cycle;
trace rosace;
drawoptions(withcolor bleu);
trace textpath("\Large Rosace",rosace,0.68);
fin;
end