Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I am trying to draw this diagram using tikz, but I am only beginner and have some problems mainly with drawing arrows in this way. I also want nodes with round corners. Anybody can help me?

screenshot

share|improve this question
1  
I think you can have a look to High level digital design in TikZ: all basics concepts to let you start are explained. –  Claudio Fiandrino Mar 27 at 15:59
    
You might also have looked at this question about box diagrams. It has a TikZ answer very like the one you got below, and two Metapost solutions. –  Thruston Mar 27 at 19:17

1 Answer 1

up vote 6 down vote accepted

This solution draw the diagram via tikz. Two styles are defined for blocks and lines respectively. To draw a line, label.anchor is used where anchor=north, south, east, and west.

enter image description here

Code

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows}
\tikzset{
block/.style={
  draw, 
  rectangle, 
  minimum height=1.5cm, 
  minimum width=3cm, align=center
  }, 
line/.style={->,>=latex'}
}
\begin{document}
\begin{tikzpicture}

\node[block] (a) {Sociogram\\ Develoment};
\node[block, above right = 0.2cm and 2cm of a] (b) {Inter-Action \\Modeling};
\node[block, below =2cm of b]   (c){Responsibilites\\ Modeling};
\node[block, right =2cm of b]   (d){Interaction\\ Modeling};
\node[block, right =2cm of c]   (e){Work in-group\\ Task Modeling};

\draw[line] (a.north) |- (b.west);
\draw[line] (a.south) |- (c.west);
\draw[line] (e.north) -- (d.south);
\draw[line] ([xshift=-1cm]b.south) -- ([xshift=-1cm]c.north);
\draw[line] ([xshift=1cm]c.north) -- ([xshift=1cm]b.south);
\draw[] (b.east) -- ++(10pt,0) coordinate[yshift=-1.7cm](l){} |- (c.east);
\draw[<->,>=latex'] (d.west) -- ++(-10pt,0) coordinate[yshift=-1.7cm,](r){} |- (e.west);
\draw[-] ([xshift=1cm]c.north) -- ([xshift=1cm]b.south);
\draw[line] (l) -- (r);
\end{tikzpicture}
\end{document}
share|improve this answer
    
Thanks a lot, you save me lot of time –  user29186 Mar 27 at 16:54
    
You are welcome. –  Jesse Mar 27 at 17:00
    
@user29186 it'd be great if you could 'upvote' Jesse's nice answer :) Reputation is the currency of our site, and by upvoting you'll give Jesse 10 reputation points, and some votes that will be counted towards tag-related badges –  cmhughes Mar 27 at 17:15
    
@cmhughes -- Much obliged, fingers touching my forehead. :-) –  Jesse Mar 27 at 17:39

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.