TikZ:连接节点部分

TikZ:连接节点部分

我是 TikZ 的新手。事实上,我才刚接触几个小时。

我想知道是否有办法连接nodepart来自不同节点的 s。

以下是一个例子

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}

\begin{tikzpicture}[
  grow=right,    
  level 1/.style={sibling distance=3.5cm,level distance=5.2cm},
  edge from parent/.style={draw=white},
]

\node[name=block1, rectangle split, rectangle split parts=4, draw=black]
  { \textbf{Block 1}
    \nodepart{second} connect to a
    \nodepart{third} connect to b
    \nodepart{fourth} connect to c
  }
  child {
    node[name=block2, rectangle split, rectangle split parts=4, draw=black]
     {  \textbf{Block 2}
        \nodepart{second} \Huge{a}
        \nodepart{third} \Huge{b}
        \nodepart{fourth} \Huge{c}
    }
};
\end{tikzpicture}
\end{document}

将点连接

我想将块 1 的节点部分连接到 2。我希望可以做类似的事情:

\draw [->] (block1.second.east) -- (block2.second.west);

...但遗憾的是,它没有起作用,而且我不知道该怎么做。

(我想我可以像往常一样堆叠普通节点并连接它们,但仍然对这里的解决方案感兴趣。)

答案1

多部分节点具有称为 、 等的锚点<node name>.one<node name>.two east可用于引用各个部分。节点的锚点显示rectangle splitShapes with Multiple Text Parts手册正如 percusse 在问题评论中指出的那样,节点部分也可以使用.second.third等进行引用,尽管手册中没有记录这一点。

附注:在这种情况下,为了定位节点,我不会使用树,而是使用引入放置新节点positioning的语法的库。right = of <node name>

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,positioning}
\begin{document}

\begin{tikzpicture}

\node[name=block, rectangle split, rectangle split parts=4, draw] 
  { \textbf{Block 1}
    \nodepart{second} connect to a
    \nodepart{third} connect to b
    \nodepart{fourth} connect to c
  };

\node[name=block2, rectangle split, rectangle split parts=4, draw, right= of block] 
     {  \textbf{Block 2}
        \nodepart{second} \Huge{a}
        \nodepart{third} \Huge{b}
        \nodepart{fourth} \Huge{c}
    };
\draw [-latex] (block.two east) -- (block2.two west);
\draw [-latex] (block.three east) -- (block2.three west);
\draw [-latex] (block.four east) -- (block2.four west);
\end{tikzpicture}
\end{document}

相关内容