在 metapost 中设置精确的标签位置

在 metapost 中设置精确的标签位置

METAPOST(和/或 METAFUN)中是否有任何选项可以标记 TikZ 允许的内容节点

我当然知道,label.{top|bot|lft|rt|...}但还有更精确的吗?

答案1

这是freelabel(label, point, point_origin)Metafun 的宏。与 tikz 中的标签类型不同,但它可以提供帮助。

它将设置label在直线上point_origin--point,靠近point但在的对侧point_origin

一个非常简单的例子:

\documentclass{standalone}
\usepackage{luamplib}
\mplibsetformat{metafun}
\mplibtextextlabel{enable}
\begin{document}
\begin{mplibcode}
    beginfig(1);
        u := 3cm;
        draw fullcircle scaled (2u);
        for i = 0 upto 14:
            draw origin -- u*dir 24i;
            freelabel("$" & decimal 24i & "$", u*dir 24i, origin);
        endfor;
    endfig;
\end{mplibcode}
\end{document} 

在此处输入图片描述

查看Metafun 文档(第 453 页及后续页面)了解更多详细信息。

答案2

可以thefreelabel扩展元乐趣将标签放在想要的方向上。它freelabeloffset决定了标签距离点有多远。

\startMPpage[offset=1dk]
vardef dirlabel(expr s, l, d) = 
    thefreelabel(s,l, unitvector dir(d+180) shifted l)
enddef ;

path p ; p = (origin -- (1,0) .. (2,2) .. (0,1) .. cycle) scaled 100 ;
numeric N ; N := 20 ;

draw p ;

for i = 0 upto (N - 1) :
    draw point i/N along p withpen pencircle scaled 2  withcolor darkred ;
    draw dirlabel(decimal i, point i/N along p, angle(direction (arctime ((i/N)*arclength p) of p) of p) - 90) ;
endfor ;
\stopMPpage

带有标签的路径

相关内容