Fichier rosace.mp (figure 1) — Modifié le 13 Avril 2008 à 13 h 13

rosace.mp (figure 1)
Source

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