
Можно ли определить пару как точку на заданной длине пути?
так например
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
TheвдольОператор, определенный в формате Metafun MetaPost, определяет точку как часть пути:
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.