For example, you can use background layers:
\documentclass[tikz, border=2pt]{standalone}
\usetikzlibrary{shapes.geometric, arrows, positioning}
\usetikzlibrary{backgrounds}
\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, 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};
\begin{scope}[on background layer]
\draw [myarrow] (n00) -- (n10);
\draw [myarrow] (n00) -- (n11);
\draw [myarrow] (n10) -- (n20);
\draw [myarrow] (n11) -- (n20);
\draw [myarrow] (n11) -- (n20);
\draw [myarrow] (n20.east) to [out=0, in=0, looseness=3] node[left]{sensor} (n00.east);
\end{scope}
\end{tikzpicture}
\end{document}
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:
\tikzset{
double -latex/.style args={#1 colored by #2 and #3}{
-latex,line width=#1,#2,
postaction={draw,-latex,#3,line width=(#1)/3,shorten <=(#1)/4,shorten >=4.5*(#1)/3},
},
box/.style = {draw,rectangle, minimum width=5cm, minimum height=1.2cm, text centered, text width=5cm, font=\Large},
myarrow/.style = {double -latex=4mm colored by blue and blue!40},
}
which gives:
arrow is not the problem (actually it appears), but your nodes overlaps (are not displaced one against other) and consequently its length is zero pt. also you have errors in your code (undefined options) and since width of boxes are not defined, it use default width, e.g. text width ...
\documentclass[12pt,fleqn,twoside]{report}
\usepackage[many]{tcolorbox}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, % for arrows style
positioning % for positioning of boxes
}
\tcbset{%
boxrule=4pt,
colback=white, % background color
colframe=cyan, % frame colour
halign=center,
valign=center,
sharp corners=all,
center title,
lower separated=false,
fonttitle=\sffamily\bfseries\large,
width=4cm % added
}
% for show only picture
\usepackage[tightpage, active]{preview}
\setlength\PreviewBorder{3mm}
\PreviewEnvironment{tikzpicture}
\begin{document}
\begin{tikzpicture}[node distance=2cm]
\node(NodeName1){
\begin{tcolorbox}[title=Box 1 Title]
Box 1 text
\end{tcolorbox}
};
\node(NodeName2) [right=of NodeName1] { % added position of second box
\begin{tcolorbox}[title=Box 2 Title]
Box 2 longer text text text text text
\end{tcolorbox}
};
\draw[blue, line width=2mm,-{Triangle[angle=60:1pt 3]}] (NodeName1) -- (NodeName2);
\end{tikzpicture}
\end{document}
see if obtained image is what you looking for:
edit:
code and explanation is slightly improved
Best Answer
How's this for a start?
My strategy:
Put a
TikZ
arrow in both columns of the first table row.smash
the arrows so they don't affect the layout of the table.Place the point
(-2,0)
inside theboundingbox
-- this hack serves to push each arrow 2cm to the right.Adjust the
baseline
of thetikzpicture
, which shifts the arrows up or down a little bit.Code: