是否可以将一对定义为沿指定路径长度的点?
例如
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
答案1
这沿着MetaPost 的 Metafun 格式中定义的运算符将点指定为路径的一部分:
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.
要使用mem
标志进行编译:mpost --mem=metafun yourfile.mp
。结果:
另外,您也可以mp-tool.mpii
在程序开始时加载该包(但您将无法享受 Metafun 的全部功能,例如透明度):
input mp-tool.mpii;
或者,如果你想坚持使用plain
格式,你可以along
自己定义运算符。它在Metafun 手册,第 61 页:
primarydef pct along pat =
(arctime (pct * (arclength pat)) of pat) of pat
enddef;
在 Metafun 格式(参见手册,同上第 61 页)中在运算符定义,指定具有维度的点的位置:
primarydef len on pat =
(arctime len of pat) of pat
enddef;
运用到我们的程序中,它会像这样使用,得到相同的结果:
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.