Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- documentclass{article}
- usepackage{tikz}
- usetikzlibrary{arrows,positioning,shapes,fit,calc}
- pgfdeclarelayer{background}
- pgfsetlayers{background,main}
- begin{document}
- begin{tikzpicture}[
- every node/.style={on grid},
- setA/.style={fill=black, circle, inner sep=1.2pt},
- setC/.style={fill=red, rectangle,inner sep=2pt},
- every fit/.style={draw, fill=white,rectangle,rounded corners=5pt, text width=70pt},>=latex]
- % set A
- node [setA, below = of a,label=left:Initiator] (a) {};
- node[above=of USA,anchor=south] {};
- % set B
- node[inner sep=0pt,right=3cm of a] (x) {Person x};
- node[below = of x] (y) {Person y};
- node[inner sep=0pt,below = of y] (z) {Person z};
- node[above=of x,anchor=south] {$B$};
- % set C
- node[setC,label=right:$m$,right = 3cm of x] (m) {Task a: xxxxxx};
- node[setC,label=right:$n$,below = of m] (n) {Task b: yyyyy};
- node[setC,label=right:$p$,below = of n] (p) {Task c: zzzzz};
- node[above=of m,anchor=south] {$C$};
- % the arrows
- draw[->,shorten >= 3pt] (a) -- node[label=above:$f$] {} (x);
- draw[->,shorten >= 3pt] (b) -- node[label=above:$f$] {} (x);
- draw[->] (c) -- node[label=above:$g$] {} (y);
- draw[->,shorten <= 3pt] (x) -- node[label=above:$h$] {} (m);
- draw[->] (n) -- node[label=above:$u$] {} (y);
- % the boxes around the sets
- begin{pgfonlayer}{background}
- node[fit= (a) (c) ] {};
- node[fit= (x) (z) ] {};
- node[fit= (m) (p)] {};
- end{pgfonlayer}
- end{tikzpicture}
- end{document}
Add Comment
Please, Sign In to add comment