\begin{tikzpicture}[>=triangle 45,shorten >=1pt,auto,node distance=3cm]
\node[state] (moderate) {moderate};
\node[state, minimum size=2cm] (above) [below right of=moderate, xshift=1cm, yshift=-3cm] {above};
\node[state, minimum size=2cm, xshift=-1cm, yshift=-3cm] (below) [below left of=moderate] {below};
\path[->] (moderate) edge [loop above] node {\texttt{t\_high = 0, t\_low = 0}} (moderate)
edge [bend left] node {\texttt{t\_high = 1}} (above)
edge [bend left] node[align=center, xshift=-2cm, yshift=1cm] {\texttt{t\_low = 1}} (below)
(above) edge [loop right] node {\texttt{t\_high = 1}} (above)
edge [bend right] node {\texttt{t\_low = 1}} (below)
edge [bend left] node[align=center, xshift=2.2cm, yshift=1cm] {\texttt{t\_high = 0,}\\\texttt{t\_low = 0}} (moderate)
(below) edge [loop left] node {\texttt{t\_low = 1}} (below)
edge [bend left] node[align=center] {\texttt{t\_high = 0,}\\\texttt{t\_low = 0}} (moderate)
edge [bend right] node {\texttt{t\_high = 1}} (above);
\end{tikzpicture}
I'm trying to draw a state machine diagram with Tikz. However, the destinations of the arrows seem to be overlapping at the same point of the nodes. I would like them to space out evenly so that one can easily tell different arrows apart; how can I do that? Any help would be appreciated.
P.S. Is there a way to get these arcs flatter? They seem to be really "fat".
bend angle(which is the default 30) and the whole symmetry of the drawing itself. If you want you can useedge[in=angle, out=angle]Syntax and manually specify the in and out angles... Although usually the automated solution is preffered – Guilherme Zanotelli Dec 05 '16 at 08:17bend rightby default means starting and ending 30 degrees to the right of the straight line. That is why you get them crammed together. Setbend angle=20should set them evenly around the circle. – StefanH Dec 05 '16 at 08:18(below.12)edge(above.34). – Symbol 1 Dec 06 '16 at 20:17