TiKZ 节点位于 A 左侧但位于 B 下方

TiKZ 节点位于 A 左侧但位于 B 下方

假设我有以下代码片段/截图。我怎样才能与 放在Desc2同一行Desc1。因此Desc2应该垂直放置在 下方T2但水平放置在 同一水平,Desc1以便描述在同一行上布局。

更一般地说:如何将节点相对于节点水平定位X,但相对于节点垂直定位Y

calc最好采用无或矩阵(自由节点放置)的解决方案

所以我看起来像这样:

 \node[below of=t2 left of d1] {Desc2};

做到这一点最简单的方法是什么?

梅威瑟:

    \documentclass[tikz]{standalone}
    \usepackage{tikz}
    \usetikzlibrary{positioning}
    \begin{document}
        \begin{tikzpicture}[align=center,node distance=2cm]
         \node[style={circle}] (t1) {T1} -- (t1) 
                  node[above left of=t1,style={circle}] (t2) {T2};
          \path[draw,->] (t1) -- (t2);
                  \node[below of=t1]  (d1) {Desc1};
            \node[below of=t2] {Desc2};
          \end{tikzpicture}
    \end{document}

在此处输入图片描述

答案1

您可以使用垂直坐标at (t2|-d1)

\node at (t2|-d1) {Desc2};

(t2|-d1)意思是 - x 坐标与 相同t2, y 坐标与 相同d1。因此,如果(x1,y1)是 的坐标t2(x2,y2)是 的坐标,d1(t2|-d1)(或等效地{d1-|t2))等于(x1,y2)。有关更多详细信息,请阅读pgfmanual,第 137 页,第 13.3.1 节。

\documentclass[tikz]{standalone}
%\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
    \begin{tikzpicture}[align=center,node distance=2cm]
     \node[style={circle}] (t1) {T1} -- (t1)
              node[above left = of t1,style={circle}] (t2) {T2};
      \path[draw,->] (t1) -- (t2);
              \node[below = of t1]  (d1) {Desc1};
        \node at (t2|-d1) {Desc2};
      \end{tikzpicture}
\end{document}

在此处输入图片描述

此外,当您使用positioning库时,请使用语法below = of(不是below of =)等等。

相关内容