如何更改线路的默认路径

如何更改线路的默认路径

我正在尝试绘制一个图表,其中 D --> B 和 B --> E 之间有链接。
下图说明了我想要得到的结果。
因此,从 D 到 B 的箭头不应位于 B 的中南侧,而应位于 B 中部前几毫米处。而从 B 出发到达 E 的箭头应位于 B 中部后几毫米处。

目标形象

这是我的代码,不幸的是它没有达到应有的效果。所有箭头都从 B 的中南部发出。

\documentclass[varwidth,border=7]{standalone}
\usetikzlibrary{positioning}
\tikzstyle{block} = [draw=black, thick, text width=2cm, minimum height=1cm, align=center]  
\tikzstyle{arr} = [thick,->,>=stealth]

\begin{document}
\begin{tikzpicture}

    \node[block] (A) {A};
    \node[block, below=of A] (D) {D};
    \node[block, right=of A] (B) {B};
    \node[block, right=of B] (C) {C};
    \node[block, below=of C] (E) {E};
    
    %\draw [arr] (D.east) --++ (15mm,0) |- (B.south);
    \draw [arr] (D) -| (B);
    \draw [arr] (B) |- (E);
    
\end{tikzpicture}
end{document}

任何帮助都将不胜感激。提前谢谢您

答案1

另一个不需要您创建任何更多节点的解决方案是使用该calc库。

计算移位

\documentclass[tikz,border=7]{standalone}
\usetikzlibrary{positioning,calc}
\tikzstyle{block} = [draw=black, thick, text width=2cm, minimum height=1cm, align=center]  
\tikzstyle{arr} = [thick,->,>=stealth]

\begin{document}
    \begin{tikzpicture}
    
        \node[block] (A) {A};
        \node[block, below=of A] (D) {D};
        \node[block, right=of A] (B) {B};
        \node[block, right=of B] (C) {C};
        \node[block, below=of C] (E) {E};
        
        \draw [arr] (D) -| ($(B.south)+(-5mm,0)$);
        \draw [arr] ($(B.south)+(5mm,0)$) |- (E);
        
    \end{tikzpicture}
\end{document}

答案2

不要使用节点(B),而要使用自定义位置(B1)并由...(B2)制成。(B.south)coordinate

梅威瑟:

\documentclass[varwidth,border=7]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzstyle{block} = [draw=black, thick, text width=2cm, minimum height=1cm, align=center]  
\tikzstyle{arr} = [thick,->,>=stealth]

\begin{document}
\begin{tikzpicture}

    \node[block] (A) {A};
    \node[block, below=of A] (D) {D};
    \node[block, right=of A] (B) {B};
    \node[block, right=of B] (C) {C};
    \node[block, below=of C] (E) {E};
    
    \draw
    (B.south) ++(-2mm,0) coordinate (B1)
    (B.south) ++(2mm,0)  coordinate (B2);
    \draw [arr] (D) -| (B1);
    \draw [arr] (B2) |- (E);
    
\end{tikzpicture}
\end{document}

结果: MWE 的结果

答案3

与其他答案类似,但没有使用calc也没有定义新的coordinates

\documentclass[varwidth,border=7]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzstyle{block} = [draw=black, thick, text width=2cm, minimum height=1cm, align=center]  
\tikzstyle{arr} = [thick,->,>=stealth]

\begin{document}
\begin{tikzpicture}

    \node[block] (A) {A};
    \node[block, below=of A] (D) {D};
    \node[block, right=of A] (B) {B};
    \node[block, right=of B] (C) {C};
    \node[block, below=of C] (E) {E};
    
    \draw [arr] (D) -| ([xshift=-3mm]B.south);
    \draw [arr] ([xshift=3mm]B.south) |- (E);
    
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容