input latexmp;
setupLaTeXMP(class="article",options="12pt",fontencoding="T1",inputencoding="latin1",language="frenchb",packages="fourier,textpathmp");
input textpath;
prologues:=2;
input geometriesyr16;
figure(-5u,-10u,8u,10u);
pair A,O,B,E[],F[],G[],M[],P[];
O=u*(2,0);
A-O=u*(5,0);
B=rotation(O,A,90);
l:=0;
for k=1 step 1 until 180:
P[k]=pointarc(cercles(O,5u),k);
if (droite(O,P[k]) intersectiontimes droite(A,B))<>(-1,-1):
E[k]=droite(O,P[k]) intersectionpoint droite(A,B);
if (droite(O,A) intersectiontimes perpendiculaire(O,E[k],E[k]))<>(-1,-1):
F[k]=droite(O,A) intersectionpoint perpendiculaire(O,E[k],E[k]);
if (droite(A,B) intersectiontimes parallele(O,E[k],F[k]))<>(-1,-1):
l:=l+1;
G[k]=droite(A,B) intersectionpoint parallele(O,E[k],F[k]);
M[l]=droite(O,E[k]) intersectionpoint perpendiculaire(O,E[k],G[k]);
pointe(M[l]);
fi;
fi;
fi;
endfor;
drawoptions(dashed evenly withcolor gris);
trace droite(O,A);
trace droite(A,B);
trace codeperp(O,A,B,5);
drawoptions(withcolor rouge);
path foliumparaboliquedroit;
foliumparaboliquedroit=M1
for k=2 upto l:
--M[k]
endfor;
trace foliumparaboliquedroit;
drawoptions(withcolor bleu);
trace textpath("\Large Folium parabolique droit",reverse(foliumparaboliquedroit),0.9);
fin;
end