[Tex/LaTex] How to get correct arrow orientation on TikZ arc

arcarrowstikz-pgf

I'm trying to fix the following TikZ figure, where the circle device in the middle should be embraced by two bended arrows pointing counter-clockwise.

figure with broken orientation for arrows

I have drawn these arrows with an arc path, but the tips of the arrows are unexpectedly both pointing upward. Any idea how to get these arrow tips to follow the direction of the arc?

Here is my code for the above figure:

\documentclass[12pt]{article}

\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}

 \draw (0,0) circle (1cm);

 \draw[fill=gray!20]  (23:0.45cm)
    -- (23:1cm) arc[radius=1, start angle=23, end angle=-203] (157:1cm)
    -- (157:0.45cm) arc[radius=0.45, start angle=157, end angle=23] (23:0.45cm);

 \draw[fill] (0,0) circle(2pt);

 \draw[->,>=stealth',semithick] (150:1.2cm) arc[radius=1.2, start angle=150, end angle=210] (210:1.2cm);
 \draw[->,>=stealth',semithick] (-30:1.2cm) arc[radius=1.2, start angle=-30, end angle=30] (30:1.2cm);

 \foreach \x/\y in {1/0,2/0,3/0,4/1,5/1,6/1,7/0,0/1}
    \node[rotate={\x*45-90}] at ($(0,0)!.75!\x*45:(1,0)$) {\y} ;
\end{tikzpicture}
\end{document}

Best Answer

That is due to the fact that you are adding the final coordinate. They should not be there. Simply change the lines to:

\draw[->,>=stealth',semithick] (150:1.2cm) arc[radius=1.2, start angle=150, end angle=210];
\draw[->,>=stealth',semithick] (-30:1.2cm) arc[radius=1.2, start angle=-30, end angle=30];

This problem arises in far simpler situations as well, it is not inherent to the curve. Consider for example \draw[->] (0,0) -- (2,0) (2,0); which will give an upward pointing arrow on the end of a horizontal line. Basically the new coordinate begins a new path segment and only the last segment of the path is given the arrowtip.