1

I want to draw a circle with 8 nodes and different arrows on each of the edges, as below:

enter image description here

So far I have made the circle with the nodes.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\begin{document} \begin{tikzpicture} \draw (0, 0) circle (2); \foreach \x in {1,...,8} { \node[shape=circle,fill=black, scale=0.5] at ({((\x-1)*360/8)+90}:2) {}; }; \end{tikzpicture} \end{document}

enter image description here

I have seen this post and this post which are similar, but seem quite complicated and I'm wondering if there's an easier way about this.

1 Answers1

2

Your hand-drawing is unclear on the arrow in the middle of the arc from -135 to -180.

enter image description here

\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}[scale=.8]
\tikzset{myarrow/.style args={at position #1 with #2}{
postaction={decorate},
decoration={markings,          % switch on markings
mark=at position #1 with {#2}
}}}

\draw (0,0) circle(2); \foreach \i in {0,...,7} \fill[magenta] (45*\i:2) circle(2pt);

\path[ myarrow=at position .5 with {\arrow{latex}}] (0:2) arc(0:-45:2);

\path[ myarrow=at position .45 with {\arrow{latex}}, myarrow=at position .55 with {\arrow{latex}}] (-45:2) arc(-45:-90:2);

\path[ myarrow=at position .58 with {\arrow{latex}}, myarrow=at position .5 with {\arrow{latex}}, myarrow=at position .42 with {\arrow{latex}}] (-90:2) arc(-90:-135:2);

\path[ myarrow=at position .35 with {\arrow{latex}}, myarrow=at position .45 with {\arrow{latex}}, myarrow=at position .55 with {\arrow{latex}}, myarrow=at position .65 with {\arrow{latex}}] (-135:2) arc(-135:-180:2);

\path[ myarrow=at position .5 with {\arrow{>}}] (180:2) arc(180:135:2);

\path[ myarrow=at position .47 with {\arrow{>}}, myarrow=at position .53 with {\arrow{>}}] (135:2) arc(135:90:2);

\path[ myarrow=at position .45 with {\arrow{>}}, myarrow=at position .5 with {\arrow{>}}, myarrow=at position .55 with {\arrow{>}}] (90:2) arc(90:45:2);

\path[ myarrow=at position .425 with {\arrow{>}}, myarrow=at position .475 with {\arrow{>}}, myarrow=at position .525 with {\arrow{>}}, myarrow=at position .575 with {\arrow{>}}] (45:2) arc(45:0:2); \end{tikzpicture}
\end{document}

Black Mild
  • 17,569