
É possível definir um par como um ponto ao longo de um comprimento especificado de um caminho?
então por exemplo
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
Responder1
Ojuntooperador definido no formato Metafun do MetaPost especifica um ponto como fração de um caminho:
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.
Para ser compilado com a mem
bandeira: mpost --mem=metafun yourfile.mp
. Resultado:
Como alternativa, você pode carregar o mp-tool.mpii
pacote no início do seu programa (mas não se beneficiará de todas as capacidades do Metafun, como a transparência):
input mp-tool.mpii;
Ou se quiser manter o plain
formato, você mesmo pode definir o along
operador. É definido como tal noManual metafun, pág. 61:
primarydef pct along pat =
(arctime (pct * (arclength pat)) of pat) of pat
enddef;
No formato Metafun (cf. manual, idem p. 61) é também osobreoperador definido, que especifica a posição de um ponto com uma dimensão:
primarydef len on pat =
(arctime len of pat) of pat
enddef;
Aplicado ao nosso programa, seria usado assim, para o mesmo 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.