Tikz - 如何连接节点

Tikz - 如何连接节点
\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\begin{document}
\begin{tikzpicture}
\draw (0,2.5) node[minimum height=1cm,minimum width=3cm,draw] (A) {A};
\draw (5,0) node[minimum height=1cm,minimum width=3cm,draw] (B){B};
\draw (5,1.5) node[minimum height=1cm,minimum width=3cm,draw] (C) {C};
\draw (5,3) node[minimum height=1cm,minimum width=3cm,draw] (D) {D};
\draw (5,4.5) node[minimum height=1cm,minimum width=3cm,draw] (E) {E};

\draw[-latex] (A.east) |- (B.west);
\draw[-latex] (A.east) |- (C.west);
\draw[-latex] (A.east) |- (D.west);
\draw[-latex] (A.east) |- (E.west);
\end{tikzpicture}

\end{document}

在 Stefan 的帮助下,我成功绘制了直线和 90 度转弯的线条。该解决方案的输出位于附图左侧。我的目标是产生如图片右侧所示的结果。我之前已经问过类似的问题,请点击此处Tikz 在节点之间绘制箭头 替代文本

答案1

一种方法是在箭头的起点处添加一个水平移动的阶段:

\draw[-latex] (A.east) -- ++(1,0) |- (B.west);

(调整1以获得所需的长度)。

这确实意味着线条的第一部分将被绘制 4 次。它可能不会显示(我不知道)。为了避免这种情况,您可以只绘制一次;因此后面的线条将是:

\draw[-latex] (A.east) ++(1,0) |- (C.west);

另一种方法是将coordinate节点放在该点:

\draw (A.east) -- ++(1,0) coordinate (div);
\draw[-latex] (div) |- (B.west);
\draw[-latex] (div) |- (C.west);

答案2

您可以创建一个带有中间点的新命令

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes,arrows}

\newcommand{\myline}[2]{
\path(#1.east) --(#2.west)  coordinate[pos=0.4](mid);
\draw[-latex] (#1.east) -| (mid) |- (#2.west);
}
\begin{document}
\begin{tikzpicture}
\draw (0,2.5) node[minimum height=1cm,minimum width=3cm,draw] (A) {A};
\draw (5,0) node[minimum height=1cm,minimum width=3cm,draw] (B){B};
\draw (5,1.5) node[minimum height=1cm,minimum width=3cm,draw] (C) {C};
\draw (5,3) node[minimum height=1cm,minimum width=3cm,draw] (D) {D};
\draw (5,4.5) node[minimum height=1cm,minimum width=3cm,draw] (E) {E};

\myline{A}{E}
\myline{A}{D}
\myline{A}{C}
\myline{A}{B}

\end{tikzpicture}

\end{document}

具有中间点的线

相关内容