I'm trying to draw a unit circle using plus and minus signs to draw arcs.I'm teaching goniometric inequalities to my students. I'm using parametric plots to draw arcs but I can't draw +/-. It would be good to choose the density of signs and rotate signs to follow arcs. Can anyone help me?

  • 1
    Something like \documentclass[tikz,border=3mm]{standalone} \usetikzlibrary{decorations.text} \begin{document} \begin{tikzpicture} \draw[decorate,decoration={text along path,text={+++++++++++++++++}, text align=fit to path}] (0,0) circle[radius=1cm]; \end{tikzpicture} \end{document}? If not, could you please try to explain your question more? – Schrödinger's cat Nov 4 '19 at 19:55
  • Yes! I have to study decorations library. – ozymandias Nov 4 '19 at 20:07
  • 2
    I knew my mandala code would be useful at some point in time: tex.stackexchange.com/a/496417/117050 – Skillmon likes topanswers.xyz Nov 4 '19 at 20:08

My comment from above with a style that makes repetition easy. E.g. to have 17 pluses along the unit circle, you only need to say

\draw[repeat along closed path={17}{+}]  (0,0) circle[radius=1cm];

i.e. the first argument is the number of repetitions and the the second the symbol (or symbols) you are going to repeat.

\begin{tikzpicture}[repeat along path/.style 2 args={
 decorate,decoration={text along path,text={{}\mytext{}},
 text align=fit to path}},
 repeat along closed path/.style 2 args={
 decorate,decoration={text along path,text={\mytext{}},
 text align=fit to path}}]
 \draw[repeat along closed path={17}{+}]  (0,0) circle[radius=1cm];
 \draw[repeat along path={9}{-},/pgf/decoration/raise=-3pt] (2,0) arc(-180:0:1);
 \draw[repeat along path={9}{+}] (2,0) arc(180:0:1);
 \draw[repeat along closed path={9}{+-}]  (6,0) circle[radius=1cm];

enter image description here

| improve this answer | |

For fun: it is very easy with pstricks:

\documentclass[svgnames, x11names, border=3pt]{standalone}
\usepackage{pst-plot, multido}


\psset{algebraic, arrowinset=0.125, arrowsize=3pt, linejoin=1}
\psaxes[linecolor=OrangeRed2! 80, ticks=none, labels=none, arrows =-> ](0,0)(-2.5,-2.5)(2.5,2.8) [$x$,-135] [$y$,-135]
\psset{linewidth=1.5pt, linecolor=DarkOliveGreen3, plotpoints=100,dotstyle= + }
\multido{\iangle= 0+9}{21}{\psdot[dotstyle=+](2;\iangle)}
\multido{\iangle= 189+9}{19}{\psdot[dotstyle=|, dotangle=90, linecolor=Gold](2;\iangle)}



enter image description here

| improve this answer | |

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.