Tikz:将节点放置在相对于路径的中间右侧或左侧

Tikz:将节点放置在相对于路径的中间右侧或左侧

我想将节点放置在路径上的某个位置,例如

\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}

相关内容