# Circular Motion

I'm trying to draw three vectors that are tangent to the circle, as shown below.

Is it possible to use \foreach to duplicate one vector around the circle? If so, can someone help me to draw this picture?

• 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. – Dai Bowen Oct 2 '16 at 14:39
• Why doesn't you use e.g. CorelDRW? I just ask. – Ľubomír Masarovič Oct 2 '16 at 18:08

Here's an alternative way to draw your circle + vectors using Metapost and luamplib. Compile with lualatex (assuming you have the TeX Gyre maths fonts available).

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\usepackage{unicode-math}
\setmathfont{TeX Gyre Termes Math}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);

path C, vv, aa, oo;
C = fullcircle scaled 4cm;

linejoin := 0;
linecap := 0;

for t=0 upto 2:
p := 8/3t+2;
drawarrow subpath (p-4/3,p+4/3) of C withcolor .3[blue,white];

vv := (origin -- unitvector(direction p of C) scaled 2cm)            shifted point p of C;
aa := (origin -- unitvector(direction p of C) scaled 1cm rotated 90) shifted point p of C;
drawarrow vv withpen pencircle scaled 2 withcolor .67 green;
drawarrow aa withpen pencircle scaled 2 withcolor (red+1/2green);

label("$\vec{v}$", unitvector(direction 3/4 of vv) rotated -90 scaled 7 shifted point 3/4 of vv);
label("$\vec{a}$", unitvector(direction 2/3 of aa) rotated +90 scaled 7 shifted point 2/3 of aa);

fill fullcircle scaled 5 shifted point p of C;
endfor

oo = subpath(3.4,4.2) of C scaled 1.12;
drawarrow oo withpen pencircle scaled 4 withcolor .8 white;
label.lft("$\omega$", point 2/3 of oo);

endfig;
\end{mplibcode}
\end{document}


## Notes

• There are 8 "points" on a fullcircle path, so point 2 of C is at 12 o'clock, etc.

• direction x of C gives you the tangent vector at point x of C

• Wrapping unitvector and scaled... around the pair returned by direction lets you control the size properly

• Setting linejoin and linecap to 0 gives you nice sharp arrows despite the big fat pen used.

• very nice answer (+1), however I'm afraid that it is to sophisticated for a LaTeX beginner (latter I anticipate on basis that OP didn't show any own effort to draw something similar what she/he like to obtain) ... :-( – Zarko Oct 2 '16 at 17:08
• @Zarko it's never too early to learn Metapost! :-) – Thruston Oct 2 '16 at 17:24

Here is a solution using TikZ:

\documentclass{article}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{tikz}

\usetikzlibrary{positioning,calc}
\usepackage{esvect}

\begin{document}

\begin{tikzpicture}

\def\rr{3cm}
\def\nn{3}
\draw[thick, blue] (0,0) circle (\rr);
\foreach \aa in {1,2,...,\nn}{
\begin{scope}[rotate={\aa*360/\nn+15}]
\draw [-latex, green, ultra thick] (0:\rr) coordinate(dd\aa)--++(0,1.5cm)coordinate(aa\aa)node[right]{$\vv{v}$};
\draw [-latex, orange, ultra thick] (0:\rr) --++(-1cm,0) node[right]{$\vv{a}$};
\draw [fill=black] (0:\rr) circle (0.1);
\end{scope}
\draw[ultra thick, gray,-latex] (-15:{\rr+0.5cm}) to [bend right=15] node[right]{$\omega$}(15:{\rr+0.5cm});
}

\def\rr{5cm}
\def\nn{5}
\draw[thick, blue] (0,0) circle (\rr);
\foreach \aa in {1,2,...,\nn}{
\begin{scope}[rotate={\aa*360/\nn+15}]
\draw [-latex, green, ultra thick] (0:\rr) --++(0,{5/3*1.5cm})node[right]{$\vv{v}$};
\draw [-latex, orange, ultra thick] (0:\rr) --++(-1cm,0) node[right]{$\vv{a}$};
\draw [fill=black] (0:\rr) circle (0.1);
\end{scope}
}

\draw (0,0) --(aa3)coordinate[pos=2](ff) -- (ff);
\draw (0,0) -- (dd3)coordinate[pos=2](ff) -- (ff);

\end{tikzpicture}

\end{document}


\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[>=Triangle]
\shade [top color=white, bottom color=gray!50, middle color=white]
(120:8/3) arc (120:190:8/3) node [black, near end, left] {$\omega$}
-- (190:25/9) -- (200:15/6) -- (190:20/9) -- (190:7/3)
arc (190:120:7/3) -- cycle;
\foreach \i in {90, 210, 330}{
\draw [->, thick, blue!50!cyan] (\i-65:2) arc (\i-65:\i+60:2);
\tikzset{shift={(\i:2)}, rotate=\i+180}
\draw [->, very thick, orange] (0,0) -- (1,0)
node [black, near end, anchor=\i+90] {$\vec a$};
\draw [->, very thick, green!50!black] (0,0) -- (0,-2)
node [black, near end, anchor=\i+180] {$\vec v$};
}
\end{tikzpicture}
\end{document}


Another solution with PSTricks. Compiling it with latex-dvips-ps2pdf is the fastest way.

\documentclass[pstricks,preview]{standalone}
\usepackage{pst-node}

\def\Orbit#1{%
\begin{pspicture}[arrows=->,arrowscale=2,dimen=m](-6,-6)(6,6)
\psarc(0,0){4}{0}{120}\psarc(0,0){4}{120}{240}\psarc(0,0){4}{240}{0}\pscircle{4}
\psarc[linecolor=gray](0,0){4.75}{50}{70}\rput(5.25;60){$\omega$}
\pnodes(0,0){O}(4;#1){A}([nodesep=2]{O}A){R}([offset=-2]{O}A){T}
\pscircle*[linecolor=green](A){6pt}
\pcline[linecolor=blue](A)(R)\naput{$\vec{a}$}
\pcline[linecolor=red](A)(T)\nbput{$\vec{v}$}
\end{pspicture}}

\begin{document}
\foreach \x in {0,30,...,330}{\Orbit{\x}}
\end{document}