我想将节点放置在路径上的某个位置,例如
\tikz (a)node[pos=0.5,left]{x}{b};
但是,我不想在绝对坐标中将其移到“左”、“右”、“上”或“下”,而是希望将其相对于路径的方向移到路径的左侧或右侧。例如,如果路径从画布的右侧水平移动到左侧,则“右”应将其置于线的上方。节点不应旋转,并且它不仅适用于直线,也适用于曲线路径。
Tikz 中解决这个问题最简单的方法是什么?
答案1
这就是该auto
选项的作用。默认情况下,它将节点放在线的左侧,沿着路径查看。您可以通过添加该swap
选项将其移动到另一侧。
\documentclass[border = 2mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
every node/.style={inner sep=0pt} % to make it clearer which line the nodes belong to
]
\foreach \Ang in {0,45,...,350}
\foreach \Ang in {0,45,...,350}
{
\draw (0,0) --node[auto] {a} (\Ang:2cm);
\draw (5,0) to[bend left] node[auto,swap] {a} ++(\Ang:2cm);
}
\end{tikzpicture}
\end{document}