带圆角的路由节点连接器

带圆角的路由节点连接器

是否有合理的方法来实现如下所示的节点连接器:

在此处输入图片描述

我可以按如下方式实现曲线的第一部分:

% !TEX program = xelatex

\documentclass{book}

\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{arrows}
\usetikzlibrary{calc}
\usetikzlibrary{shapes}
\pgfdeclarelayer{bg}
\pgfsetlayers{bg,main}

\tikzstyle{box}=[rectangle,draw=black,inner xsep=12pt,inner ysep=6pt]

\tikzset{>=triangle 45}

\begin{document}

    \begin{tikzpicture}%
        \node (top)    [box] {Top};
        \node (bottom) [box,below=1cm of top] {Bottom};

        \begin{pgfonlayer}{bg}%
            \draw[->] (bottom.east) -- ++(0.3,0) .. controls +(0.25,0) and +(0,-0.25) .. ++(0.25,0.25) -- ++(0,1);
        \end{pgfonlayer}
    \end{tikzpicture}%

\end{document}

看起来像这样:

在此处输入图片描述

但是,我不确定如何轻松地完成连接器。我可以计算第二条曲线应该从哪里开始,但这会导致代码很难理解。

有没有合理的方法可以实现这个目标?

答案1

您可以使用该rounded corners选项。要获得所需的结果,您可以在线的中心添加“航点”。

下列:

\documentclass{standalone}

\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
        \node[draw,rectangle] (top) at (0,1) {top};
        \node[draw,rectangle] (bottom) at (0,0) {bottom};
        \draw [->,rounded corners] (bottom.east) -| (1.5,0.5) |- (top.east); %Here the (1.5,0.5) is a ``waypoint´´
\end{tikzpicture}
\end{document}

返回:

在此处输入图片描述

相关内容