流程图中的复杂箭头

流程图中的复杂箭头

在此处输入图片描述

除了一些复杂的箭头外,我已经完成了大部分流程图。我使用的代码是

\tikzstyle{io} = [rectangle, rounded corners, minimum width = 3cm, minimum
height = 1cm, text centered, draw=black]
\tikzstyle{io1} = [rectangle, rounded corners, minimum width = 3cm, minimum
height = 1.5cm, text centered, draw=black]
\tikzstyle{arrow} = [ultra thick, ->, >=stealth]
\begin{center}
\begin{tikzpicture}[node distance = 2cm]
\node (start) [io1] {Concept proposed 2005-06};
\node (in1) [io1, below of = start, yshift=-3cm] {ABE schemes 2006-12};
\node (in2) [io1, below of = in1, yshift = -5cm] {Development 2007-13};
\node (in3) [io1, below of = in2, yshift = -0.8cm] {Future work 2014};
\node (in4) [io, right of = start, , yshift = 1cm, xshift = 7cm] {FIBE 2005};
\node (in5) [io, below of = in4] {KP-ABE, CP-ABE 2006};
\node (in6) [io, below of = in5] {KP-ABE 2006-11};
\node (in7) [io, below of = in6] {CP-ABE 2007-12};
\node (in8) [io, below of = in7] {Dual-policy ABE 2009};
\node (in9) [io, below of = in8] {Multi-authority ABE 2007-12};
\node (in10) [io, below of = in9] {User/Attribute revocation 2007-13};
\node (in11) [io, below of = in10] {Accountability 2009-12};
\node (in12) [io, below of = in11] {PRE 2008-13};

\draw[arrow] (start) -- (in1);
\draw[arrow] (in1) -- (in2);
\draw[arrow] (in2) -- (in3);
\end{tikzpicture}
\end{center}

在此处输入图片描述

我怎样才能绘制这些复杂的卷曲箭头?

答案1

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{calc}
\tikzset{connect with angle rc/.style={to path={%
let \p1=(\tikztostart),\p2=(\tikztotarget),\n1={\y1-\y2} in 
\ifdim\n1=0pt
 -- (\tikztotarget)
\else
 \ifdim\n1>0pt
 -- ++({((\x2-\x1)*0.4},0) [rounded corners]
 -- ++({(\y2-\y1)*cot(-1*#1)},{\y2-\y1})
 -- (\tikztotarget)
 \else
 -- ++({((\x2-\x1)*0.4},0) [rounded corners]
 -- ++({(\y2-\y1)*cot(#1)},{\y2-\y1})
 -- (\tikztotarget)
 \fi
\fi
}}}
\begin{document}
\tikzset{io/.style={rectangle, rounded corners, minimum width = 3cm, minimum 
height = 1cm, text centered, draw=black},
io1/.style={rectangle, rounded corners, minimum width = 3cm, minimum 
height = 1.5cm, text centered, draw=black},
arrow/.style={ultra thick, ->, >=stealth}}
\begin{tikzpicture}[node distance = 2cm]
\node (start) [io1] {Concept proposed 2005-06};
\node (in1) [io1, below of = start, yshift=-3cm] {ABE schemes 2006-12};
\node (in2) [io1, below of = in1, yshift = -5cm] {Development 2007-13};
\node (in3) [io1, below of = in2, yshift = -0.8cm] {Future work 2014};
\node (in4) [io, right of = start, , yshift = 1cm, xshift = 7cm] {FIBE 2005};
\node (in5) [io, below of = in4] {KP-ABE, CP-ABE 2006};
\node (in6) [io, below of = in5] {KP-ABE 2006-11};
\node (in7) [io, below of = in6] {CP-ABE 2007-12};
\node (in8) [io, below of = in7] {Dual-policy ABE 2009};
\node (in9) [io, below of = in8] {Multi-authority ABE 2007-12};
\node (in10) [io, below of = in9] {User/Attribute revocation 2007-13};
\node (in11) [io, below of = in10] {Accountability 2009-12};
\node (in12) [io, below of = in11] {PRE 2008-13};

\draw[arrow] (start) -- (in1);
\draw[arrow] (in1) -- (in2);
\draw[arrow] (in2) -- (in3);
\foreach \X in {4,5}
{\draw (start) to[connect with angle rc=60] (in\X);}
\foreach \X in {6,7,8}
{\draw (in1) to[connect with angle rc=60] (in\X);}
\foreach \X in {9,...,12}
{\draw (in2) to[connect with angle rc=60] (in\X);}

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容