Calcul de la longueur et du milieu d’un chemin

Auteur ou autrice : Vincent Zoonekynd.

Mise en ligne le 12 octobre 2024

Image du résultat de l’exemple

En 1999, puis mis à jour en 2001, Vincent Zoonekynd a mis en ligne un fichier MetaPost illustrant différentes utilisations du programme avec plus de 300 exemples. Ces exemples sont disponibles sur le CTAN.

Code


u:=1cm;
beginfig(159)
  vardef longueur(expr p) =
    save l,i;
    numeric l;
    l:=0;
    for i=0 step .01 until length(p):
      l:=l+abs( (point i of p) - (point(i+.01) of p) );
    endfor;
    l % Pas de point-virgule
  enddef;
  vardef milieu(expr p) =
    save l,i,tot,A,B;
    numeric l,tot,i;
    pair A,B;
    tot := longueur(p);
    l:=0;
    B := point 0 of p;
    for i:=0 step .01 until length(p):
      A := B;
      B := point i of p;
      l := l+abs(B-A);
      exitif l > 1/2 tot;
    endfor;
    1/2[A,B]
  enddef;

  path p;
  p := (0,0){up} .. (1cm,1cm) .. (1cm,0);
  draw p;
  draw point 1/2length(p) of p withpen pencircle scaled 4bp withcolor red;
  draw milieu(p) withpen pencircle scaled 4bp;
endfig;

end.

Mots clés : longueurmilieulengtharclengthpointzoonekynd

Cet exemple fait partie de la collection d’exemples Exemples de Vincent Zoonekynd.

Fichiers

Télécharger l’archive complète