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

quartiquedekulp.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(u,0,14u,6u);
pair O,A,P[],N[],M[];
O=u*(7.5,3);
path cc,dd;
cc=cercles(O,2.5u);
A=pointarc(cc,90);
dd=perpendiculaire(O,A,A);
marque_p:="plein";
l=0;
for k=0 step 1 until 180:
  P[k]=pointarc(cc,k);
  if (dd intersectiontimes droite(O,P[k]))<>(-1,-1):
    l:=l+1;
    N[k]=dd intersectionpoint droite(O,P[k]);
    M[l]=perpendiculaire(O,A,P[k]) intersectionpoint parallele(O,A,N[k]);
  fi;
endfor;
p=3000;
for k=181 step 1 until 360:
  P[k]=pointarc(cc,k);
  if (dd intersectiontimes droite(O,P[k]))<>(-1,-1):
    p:=p+1;
    N[k]=dd intersectionpoint droite(O,P[k]);
    M[p]=perpendiculaire(O,A,P[k]) intersectionpoint parallele(O,A,N[k]);
  fi;
endfor;
drawoptions(dashed evenly withcolor gris);
trace cc;trace dd;
drawoptions(withcolor rouge);
path quartiquekulp[];
quartiquekulp1=M1
for k=2 upto l:
  --M[k]
endfor;
quartiquekulp2=M3001
for k=3002 upto p:
  --M[k]
endfor;
trace quartiquekulp1;
trace quartiquekulp2;
drawoptions(withcolor bleu);
trace textpath("\Large Quartique de Kulp",reverse(quartiquekulp1),0.4);
fin;
end