
¿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 mem
bandera: mpost --mem=metafun yourfile.mp
. Resultado:
Como alternativa, puedes cargar el mp-tool.mpii
paquete 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 plain
formato, puede definir el along
operador 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.