将文本放置在曲线外侧(Tikz)

将文本放置在曲线外侧(Tikz)

在发帖之前,我浏览了 Tikz 手册,但找不到任何关于此的内容。我想绘制一个螺旋,其中有沿路径的锚文本节点。我目前有

\begin{tikzpicture}
\draw[thick,color=red,domain=4*pi:8*pi,samples=200,smooth] plot (xy polar cs:angle=\x r,radius= {0.1*\x});

\foreach \x/\xtext  in {{27*pi/6}/Text on outside,{33*pi/6}/now on inside =(}
  \draw (1.0027*\x r : 0.1*\x) circle (2pt) node[above] {\xtext};

\end{tikzpicture}

不幸的是,我无法上传上述代码的结果图像(每次尝试上传时都会遇到错误)。

指定node[above]意味着文本将出现在螺旋线的一半内部,而另一半出现在外部。我可以(可能必须)手动指定每个节点锚点的位置,但我想知道是否有办法确保锚点始终位于外部(或内部)。

谢谢你的帮助。

答案1

如果需要指定多个点,则测试的值\x并据此确定节点标签的位置可能会更容易。例如:

\documentclass[tikz,border=20pt]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[thick,color=red,domain=4*pi:8*pi,samples=200,smooth] plot (xy polar cs:angle=\x r,radius= {0.1*\x});

\foreach \x/\xtext  in {{9/2}/Text on outside,{11/2}/Still outside,{13/2}/Yet more outside text,{15/2}/Further outside text}
  \pgfmathsetmacro\xresult{ (mod(\x,2) > 1) ? "below" : "above"  }
  \draw (1.0027*pi*\x r : 0.1*pi*\x) circle (2pt) node[\xresult] {\xtext};
\end{tikzpicture}
\end{document}

自动标签定位

答案2

只需进行小幅扩展即可cfr 的答案。节点的锚点可以设置为螺旋线的角度加上pi任意角度:

\documentclass[tikz,border=5]{standalone}
\begin{document}
\begin{tikzpicture}
\draw [thick, color=red]
  plot [domain=4*pi:8*pi, samples=200, smooth] (\x r:0.1*\x);

\foreach \x in {16,...,32}
  \fill (pi r * \x/4 : pi/10*\x/4) circle [radius=1pt] 
     node [anchor=pi r * \x/4 + pi r, inner sep=2] {\tiny$\frac{\x}{4}\pi$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容