I'd like to place p evenly-spaced nodes around a circle.

I want to draw the following picture with using document class [report].

enter image description here

Edit: What I have done so far,



\def \n {5}
\def \radius {1.5cm}
\def \margin {3}
\foreach \s in {1,...,\n} {%
   \node [anchor=center] at ({360/\n * (\s-1)}:\radius+ 1){$g^{\s}$};
   \filldraw[black] ({360/\n * (\s-1)}:\radius) circle (1pt) ;
   \node [anchor=center] at ({360/\n * (\s-1)}:\radius+0.3cm ){$g^{\s}$};
   \draw[>=latex] ({360/\n * (\s-1)+ \margin}:\radius)
      arc({360/\n * (\s-1)+\margin}:{360/\n * (\s)-\margin}:\radius);
  • 3
    This is a do-it-for-me question. Please show what you've got so far and then ask a specific question.
    – TeXnician
    Mar 26, 2017 at 17:33
  • I just can draw a circle in tikz.
    – math
    Mar 26, 2017 at 17:36
  • 2
    See tex.stackexchange.com/questions/136357/…, just don't draw the polygon. Mar 26, 2017 at 17:36
  • 1
    Welcome to TeX.SX. Questions about how to draw specific graphics that just post an image of the desired result are really not reasonable questions to ask on the site. Please post a minimal compilable document showing that you've tried to produce the image and then people will be happy to help you with any specific problems you may have. See minimal working example (MWE) for what needs to go into such a document.
    – Thruston
    Mar 26, 2017 at 18:33
  • 1
    Perhaps this post might help you: tex.stackexchange.com/questions/145379/….
    – God bless
    Mar 26, 2017 at 19:20

1 Answer 1


This can be done in a single \draw.


        \def \n {20}
        \def \radius {3}
        \draw circle(\radius)
              foreach\s in{1,...,\n}{

ellipsis version

    \def \n {20}
    \def \radius {3}
    \draw circle(\radius)(0:-\radius)circle(.4pt)circle(.8pt)circle(1.2pt)
          foreach\s in{0,...,7}{
              node[anchor={-360/\n*(\s-1)}]{$\ifcase\s\relax g^{p-1}=g^{-1}\or g^p=e\else g^{\pgfmathparse{int(\s-1)}\pgfmathresult}\fi$}
          foreach\s in{9,...,\n}{

  • You can probably replace circle(.4pt)circle(.8pt)circle(1.2pt) with node[fill,circle, inner sep=1pt]{}.
    – Kpym
    Mar 28, 2017 at 20:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .