您的位置:首页 > 其它

Tikz:Tutorial: A Petri-Net for Hagen

2013-11-10 12:51 3255 查看


\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit,petri}
\begin{tikzpicture}[
every place/.style={circle,draw=blue!50,fill=blue!20,thick,inner sep = 2pt,minimum size = 6mm},
every  transition/.style={rectangle,draw=black!50,fill=black!20,thick,inner sep = 2pt,minimum size = 6mm},
red place/.style = {place,draw=red!75,fill=red!20},
every label/.style = {red,font=\small},
node distance=1.3cm,bend angle=45,on grid,>=latex,auto
]

\node (a) [place,tokens =1] {};
\node (b) [place ,below=of a] {b};
\node (c) [place ,below=of b] {c};
\node (d) [place ,below=of c] {d};
\node (e) [place ,tokens=1,below=of d] {};

\node (f) [transition,left = of b] {f}
edge [post]                (b)
edge [post,bend right]                (c)
edge [pre,bend left]                (a)
;

\node (g) [transition,right= of b] {g}
edge [pre]                              (b)
edge [pre,bend left]                (c)
edge [post,bend right]                (a)
;

\node (h) [transition,left = of d] {h}
edge [post]                (d)
edge [post,bend right]                (e)
edge [pre,bend left]                (c)
;

\node (i) [transition,right= of d] {i}
edge [pre]                              (d)
edge [pre,bend left]                (e)
edge [post,bend right]                (c)
;

\begin{scope}[on background layer]
\node (r1) [fill=black!10,rounded corners,fit=(a)(b)(c)(d)(e)(f)(g)(h)] {};
\end{scope}

\begin{scope}[xshift=6cm]
\node (a) [place,tokens =1] {};
\node (b) [place ,below=of a] {b};
\node (c) [red place ,below=of b,xshift=-5mm,tokens=3]     {};
\node (d) [red place ,below=of b,xshift=5mm]     {d};
\node (e) [place ,below=of d,xshift=-5mm]         {e};
\node (f) [place ,below=of e]                     {f};

\node (g) [transition,left= of b] {g}
edge [post]                              (b)
edge [post]                        (c)
edge [pre]                        (d)
edge [pre,bend left]                        (a)
;

\node (h) [transition,right= of b] {h}
edge [post]                              (b)
edge [post]                        (c)
edge [pre]                        (d)
edge [pre,bend right]                        (a)
;

\node (i) [transition,left= of e] {i}
edge [post]                              (e)
edge [post]                        (c)
edge [pre]                        (d)
edge [pre,bend right]                        (f)
;
\node (j) [transition,right= of e] {j}
edge [post]                              (e)
edge [post]                        (c)
edge [pre]                        (d)
edge [pre,bend left]                        (f)
;

\end{scope}

\begin{scope}[on background layer]
\node (r2) [fill=black!10,rounded corners,fit=(a)(b)(c)(d)(e)(f)(g)(h)] {};
\end{scope}

\draw [-to ,decorate,decoration={snake,amplitude=.4mm,segment length=1mm,post length=1mm}](r1)--(r2) node [above,text width=1cm,midway] {how are you $a+b$};
\end{tikzpicture}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: