I am trying to make following chart in tikz.
I am not able to make the circular arrow properly. Below is the code-
\documentclass[tikz, border=2pt]{standalone}
\usetikzlibrary{shapes.geometric, arrows, positioning}
\tikzset{
box/.style = {draw,rectangle, minimum width=5cm, minimum height=1.2cm, text centered, text width=5cm, font=\Large},
myarrow/.style = {line width=2mm, draw=blue, -triangle 60, fill=blue!40,postaction={draw, line width=4mm, shorten >=6mm, -}}
}
\begin{document}
\begin{tikzpicture}[node distance=4cm]
\node (n00) [box, draw=red, fill=red!40] {C\# based Game Environment in PC};
\node (n10) [box, draw=orange, fill=orange!40, below of=n00, xshift=-4cm] {Display based on Projector for Visual Feedback};
\node (n11) [box, draw=orange, fill=orange!40, below of=n00, xshift=+4cm] {Audio feedback from Speaker};
\node (n20) [box, draw=green, fill=green!40, below of=n10, xshift=+4cm] {Player};
\draw [myarrow] (n00) -- (n10);
\draw [myarrow] (n00) -- (n11);
\draw [myarrow] (n10) -- (n20);
\draw [myarrow] (n11) -- (n20);
\draw [myarrow] (n11) -- (n20);
\draw [myarrow] (n20) to [bend right=40] (n00);
\end{tikzpicture}
\end{document}
One can clearly notice that-
- The arrows are not properly placed, such as the tail of arrow is always at the front of source node.
- The arrows were are expected to be filled with light blue i.e. blue!40 with blue color border, but it didn't
- The circular arrow is rendered on the top of right node.
Any workaround please.
Best Answer
For example, you can use background layers:
to have
notice that you have probably to set the bounding box manually, look at Bounding box is larger than expected when drawing a curved path
Notice that the arrows are lines --- not path that can be
fill
ed; so to have a big arrow with outlines in different colors you have to do things like Paul Gaborit's answer:which gives: