Definir un par/punto como un par/punto a lo largo de una ruta METAPOST

Definir un par/punto como un par/punto a lo largo de una ruta METAPOST

¿Es posible definir un par como un punto a lo largo de una longitud específica de un camino?

así por ejemplo

beginfig
u=2cm;
path x;
x=(0,0)..u*dir(225);
%v= a point along a fraction of the length of x in a specific direction 
endfig 

Respuesta1

Ela lo largo deEl operador definido en el formato Metafun de MetaPost especifica un punto como fracción de una ruta:

beginfig(1);
  u=2cm;
  path x; x=(0,0)..u*dir(225); draw x;
  pair v; v = point .3 along x;
  dotlabel.lrt(btex v etex, v);
endfig;
end.

A compilar con la membandera: mpost --mem=metafun yourfile.mp. Resultado:

ingrese la descripción de la imagen aquí

Como alternativa, puedes cargar el mp-tool.mpiipaquete al principio de tu programa (pero entonces no te beneficiarás de todas las capacidades de Metafun, como la transparencia):

input mp-tool.mpii;

O si desea ceñirse al plainformato, puede definir el alongoperador usted mismo. Se define como tal en elmanual metafun, pag. 61:

primarydef pct along pat = 
  (arctime (pct * (arclength pat)) of pat) of pat
enddef;

En el formato Metafun (cf. manual, ídem p. 61) también se encuentraenoperador definido, que especifica la posición de un punto con una dimensión:

primarydef len on pat =
  (arctime len of pat) of pat 
enddef;

Aplicado a nuestro programa, se usaría así, para el mismo resultado:

beginfig(1);
  u=2cm;
  path x; x=(0,0)..u*dir(225); draw x;
  pair v; v = point .6cm on x;
  dotlabel.lrt(btex v etex, v);
endfig;
end.

información relacionada