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