是否有合理的方法来实现如下所示的节点连接器:
我可以按如下方式实现曲线的第一部分:
% !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}
返回: