关节 TikZ 路径上的节点

关节 TikZ 路径上的节点

我有以下代码

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw (-3,-3) rectangle (3,3);
  \path[draw,thick] (0,0) |- (1.5,1.5);
  \node at (0.75,1.5) [above] {Hi};
\end{tikzpicture}
\end{document}

结果是:

直角路径,顶部树枝中间有“Hi”字样

在我看来,我可以通过这样做来达到同样的效果:

\path[draw,thick] (0,0) |- node{Hi} (1.5,1.5);

但是,当我尝试时,我得到:

直角路径,拐角处有“Hi”字样

有没有什么办法可以实现我的愿望?

答案1

\path[draw,thick] (0,0) |- node{Hi} (1.5,1.5);

节点位于路径的中间(midwaypos=.5)。|--|运算符很特殊,因为它们的中间恰好位于尖锐拐点上。

因此,你的路径的第二部分的中间是.75你的整个路径,因此

node[pos=.75,above]

是需要的。

例子

  \path[draw] (0,0) -| (5,-1);
  \foreach \x in {0.0,0.25,0.5,0.75,1.0}{
    \path[draw] (0,0) -| node[pos=\x] {\x} (5,-1);
  }

输出

在此处输入图片描述

代码

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw (-3,-3) rectangle (3,3);
  \path[draw,thick] (0,0) |- node[pos=.75,above] {Hi} (1.5,1.5);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

不同的方法

作为保罗·加博利提到过一条评论还有可能避免|-和的特殊性-|,实际上使用具有坐标规范|-和的两个路径部分-|(实际上它们只是垂直坐标系的捷径)。

在类似这样的路径中

\path (<c1>) -- (<c1> |- <c2>) -- node {} (<c2>);

你有两个路径部分:

  • 一个从<c1>到 坐标垂直穿过<c1>并水平穿过<c2>,并且
  • 从该点到<c2>我们想要放置节点的位置(在该部分的中间,参见上文)。

如果你想重复使用这两个部分,我建议你使用自定义的,to path这样你就不需要重复两个坐标了。(数字代表节点应放置在路径的哪一部分。)

代码

\documentclass[tikz]{standalone}
\tikzset{
 |- 1/.style={to path={-- (\tikztostart |- \tikztotarget) \tikztonodes -- (\tikztotarget)}},
 |- 2/.style={to path={-- (\tikztostart |- \tikztotarget) -- (\tikztotarget) \tikztonodes}},
 -| 1/.style={to path={-- (\tikztostart -| \tikztotarget) \tikztonodes -- (\tikztotarget)}},
 -| 2/.style={to path={-- (\tikztostart -| \tikztotarget) -- (\tikztotarget) \tikztonodes}},
}
\begin{document}
\begin{tikzpicture}[draw, thick]
\draw (0,0) to[|- 2] node{Hi} (1.5,1.5);
\draw (0,-1) to[-| 1] node{Hi} ++ (1.5,-1.5);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容