How can I draw a figure of a partitioned circle with a circle in the middle using TikZ or any other LaTeX tool? enter image description here

  • You probably get more (and better) answers, if you provide a mwe to show what you already tried. – Jürgen Mar 16 '17 at 11:16

Another version (where the number of spokes can change)

  \draw (0,0) circle (\InnerR);
  \draw (0,0) circle (\OuterR);
  \foreach \k in {1,...,\NumSpokes}{%
    \draw (\k*360/\NumSpokes:\InnerR) -- (\k*360/\NumSpokes:\OuterR);}
  \node at (0,0){$\mathrm{Princ}(C)$};
  \node[anchor=south west] at (45:\OuterR){$\mathrm{Div}^0(C)$};

enter image description here


There are of course lots of solutions, one of them shows the following example.

 \draw[line width=1pt] (0,0) circle (2cm);
 \foreach \phi in {0,60,120} \draw[line width=0.5pt] (\phi:2cm) -- (\phi+180:2cm);
 \draw[line width=1pt,fill=white] (0,0) node {$Princ(C)$} circle (0.8cm);
 \node[above right] at (45:2.1cm) {$Div^0(C)$};

You would have to modify the text output somehow, but since you want to label it anyway, the option of tikz nodes to access any angle on its border could come in handy


    \node[shape=circle, draw, thick, minimum width=1cm] (inner) at (0, 0) {$Princ(C)$};
    \node[shape=circle, draw, thick, minimum width=3cm] (outer) at (0, 0) {};

    %\draw (inner.0) -- (outer.0);
    %\draw (inner.60) -- (outer.60);

    \foreach \angle in {0,60,...,300}\draw (inner.\angle) -- (outer.\angle);

    \node[anchor=south west] at (outer.50) {$Div^0(C)$};

Where you can use the \foreach for regular sectioning, or the draw commands for arbitrary angles (thanks to StefanH in the comments)

With the result:

Circle in a circle. Circleception.

However, Jürgen's answer also works, so it is probably more a decision of what you intend to do with it.

  • 1
    You can draw the lines using \foreach \angle in {0,60,...,300}\draw (inner.\angle) -- (outer.\angle); – StefanH Mar 16 '17 at 11:44
  • I tried, but got tons of errors. Are you sure that works for you? Nevermind, I copied your code and it worked. Maybe I had a typo there somewhere and blamed the foreach. – Timm Mar 16 '17 at 11:46

A short code with pstricks:

\documentclass[12pt, border=3pt]{standalone}

\usepackage{pst-plot, auto-pst-pdf}


    \multido{\i=0+60}{6}{\psline[linewidth=1.5pt](1.5; \i)(4.5; \i)}
    \uput{1em}[r](4.5;60){ Div\textsuperscript{0}(C)}


enter image description here

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.