# Why do I get an arrowhead in the middle of a circle?

The follow code produces an arrowhead at the centre of the circles. Can anyone please explain why and how to remove it?

\tikzset{pics/carc/.style args={#1:#2:#3}{
code={\draw[pic actions] (#1:#3) arc(#1:#2:#3);
}}}
\begin{tikzpicture}
\draw[<-,>=stealth', thick, black] (0,0) pic{carc=100:440:1.6};
\draw[<-,>=stealth', thick, black] (0,0) pic{carc=100:440:1.1};
\draw[<-,>=stealth', thick, black] (0,0) pic{carc=100:440:0.6};
\end{tikzpicture}

• Please, don't post fragments but a minimal example from \documentclass to \end{document}. – egreg Mar 19 '18 at 14:22

Replace \draw by \path then the arrow to (0,0), which is the end of your the path, will not be drawn:

\documentclass[margin=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\tikzset{pics/carc/.style args={#1:#2:#3}{
code={\draw[pic actions] (#1:#3) arc(#1:#2:#3);
}}}
\begin{tikzpicture}
\path[<-,>=stealth', thick, black]
(0,0) foreach \r in {1.6,1.1,.6}{pic {carc=100:440:\r}};
\end{tikzpicture}
\end{document}


• I really like your simple loop, but I think that the path solution is perhaps not optimal. Sometimes the paths get distorted by options like shorten. In the above situation, of course there is none of these issues. – user121799 Mar 19 '18 at 14:58

The arrow is there because you asked TikZ to put it. I guess you want to pass the options to the \draw inside the pic, not to the outside one.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\tikzset{pics/carc/.style args={#1:#2:#3}{
code={\draw[pic actions] (#1:#3) arc(#1:#2:#3);
}}}
\begin{tikzpicture}
\draw (0,0) pic[<-,>=stealth', thick, black]{carc=100:440:1.6};
\draw (0,0) pic[<-,>=stealth', thick, black]{carc=100:440:1.1};
\draw (0,0) pic[<-,>=stealth', thick, black]{carc=100:440:0.6};
\end{tikzpicture}
\end{document}