7

I'm wondering how to draw the following image in TikZ:

Three overlapping arrows in a circle

As opposed to a known low-level solution to a similar problem, I'm wondering whether it is possible to operate with high-level concepts such as arrows (rather than going down to the level of arcs and lines). Notice that gray borders are required and shadows are not required.

  • the simplest way is in answer which you aware. less simple way might be use of nonlinear canvas transformation. challenge for some tikz programming guru/enthusiast :-) or compose arrows whit two stacked arrows. bigger one is gray, smaller, covered it, is for example yellow ... – Zarko Apr 6 '18 at 18:20
7
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\begin{document}

\def\arrow{
 (90:.9cm) -- (90:.7cm) -- (110:1.2) -- (90:1.7cm) -- (90:1.5cm)
}

\begin{tikzpicture}[ultra thin]

\draw [gray,fill=yellow!50] circle(1.5);
\draw [gray,fill=white] circle(.9); 

\foreach \ang in {0,120,240} {
 \path[rotate=\ang,fill=yellow!50] \arrow --cycle;
 \draw[draw=gray,rotate=\ang] \arrow;
}
\end{tikzpicture}

\end{document}

enter image description here

Edit:

You can also set an isosceles triangle by changing the \arrow command like this:

\def\arrow{
 (0,.9) -- (0,.7) -- (-.4,1.2) -- (0,1.7) -- (0,1.5)
}

in which case, you will get these nice curved arrows:

enter image description here

2

With arrows.meta and bendings and now with border.

\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{decorations.markings,arrows.meta,bending}
\newcommand{\ThirdArrow}[1][]{%
\draw[line width=0.82cm,gray,-{Triangle[angle=60:.5cm 1,bend]},#1] (-74.5:1.6)
arc (-74.5:74.5:1.6 and 1.6);
\draw[line width=0.8cm,yellow!50,-{Triangle[angle=60:.5cm 1,bend]},#1] (-74:1.6) arc (-74:74:1.6 and 1.6);
}     
\newcommand{\ExtraArrow}[1][]{%
\draw[line width=0.82cm,gray,-{Triangle[angle=60:.5cm 1,bend]},#1] (0:1.6)
arc (0:74.5:1.6 and 1.6);
\draw[line width=0.8cm,yellow!50,-{Triangle[angle=60:.5cm 1,bend]},#1] 
(-0.1:1.6) arc (0:74.1:1.6 and 1.6);
}     


\begin{document}
\begin{tikzpicture}
\ThirdArrow
\ThirdArrow[rotate=120]
\ThirdArrow[rotate=240]
\ExtraArrow
\ExtraArrow[rotate=120]
\end{tikzpicture}
\end{document}

enter image description here

  • @VasiliPupkin Yes, I didn't notice the gray unwanted line. And the bending is on purpose because IMHO opinion it looks nicer. – user121799 Apr 6 '18 at 19:18
  • Thanks again. So you are drawing the gray triangle and then the yellow on top? That's ok, except that borders do not have constant thickness. Still, it's ok for my purposes; thanks again. – user159824 Apr 6 '18 at 19:29
  • @VasiliPupkin Yes, one can tune the distances. I'll do it in a bit. – user121799 Apr 6 '18 at 19:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy