# Diagramming Unit Circle and Sine Wave with TikZ

How could I express this diagram (attached) as a TikZ picture to be used in a LaTeX document? I've been working on it for a while with no success.

\documentclass{article}% guessing (cfr)
\usepackage{tikz}
\usepackage[top=1in,bottom=1in,right=1in,left=1in]{geometry}
\begin{document}% added - surely necessary! (cfr)
\begin{tikzpicture}[scale=5.3,cap=round,>=latex]
\draw[->] (-1.5cm,0cm) -- (1.5cm,0cm) node[right,fill=white] {$x$};
\draw[->] (0cm,-1.5cm) -- (0cm,1.5cm) node[above,fill=white] {$y$};

\draw[thick] (0cm,0cm) circle(1cm);

\foreach \x in {0,30,...,360} {
\draw[gray] (0cm,0cm) -- (\x:1cm);
\filldraw[black] (\x:1cm) circle(0.4pt);
\draw (\x:0.6cm) node[fill=white] {$\x^\circ$};
}

\foreach \x/\xtext in {
30/\frac{\pi}{6},
45/\frac{\pi}{4},
60/\frac{\pi}{3},
90/\frac{\pi}{2},
120/\frac{2\pi}{3},
135/\frac{3\pi}{4},
150/\frac{5\pi}{6},
180/\pi,
210/\frac{7\pi}{6},
225/\frac{5\pi}{4},
240/\frac{4\pi}{3},
270/\frac{3\pi}{2},
300/\frac{5\pi}{3},
315/\frac{7\pi}{4},
330/\frac{11\pi}{6},
360/2\pi}
\draw (\x:0.85cm) node[fill=white] {$\xtext$};

\foreach \x/\xtext/\y in {
30/\frac{\sqrt{3}}{2}/\frac{1}{2},
45/\frac{\sqrt{2}}{2}/\frac{\sqrt{2}}{2},
60/\frac{1}{2}/\frac{\sqrt{3}}{2},
150/-\frac{\sqrt{3}}{2}/\frac{1}{2},
135/-\frac{\sqrt{2}}{2}/\frac{\sqrt{2}}{2},
120/-\frac{1}{2}/\frac{\sqrt{3}}{2},
210/-\frac{\sqrt{3}}{2}/-\frac{1}{2},
225/-\frac{\sqrt{2}}{2}/-\frac{\sqrt{2}}{2},
240/-\frac{1}{2}/-\frac{\sqrt{3}}{2},
330/\frac{\sqrt{3}}{2}/-\frac{1}{2},
315/\frac{\sqrt{2}}{2}/-\frac{\sqrt{2}}{2},
300/\frac{1}{2}/-\frac{\sqrt{3}}{2}}
\draw (\x:1.25cm) node[fill=white] {$\left(\xtext,\y\right)$};

\draw (-1.25cm,0cm) node[above=1pt] {$(-1,0)$}
(1.25cm,0cm)  node[above=1pt] {$(1,0)$}
(0cm,-1.25cm) node[fill=white] {$(0,-1)$}
(0cm,1.25cm)  node[fill=white] {$(0,1)$};
\end{tikzpicture}
\end{document}


Which came out as

• Welcome to TeX SE! Please post an example showing what you've tried so that people have something to work with. Start with \documentclass{} and end with \end{document}. You can edit your question, paste the code and then format it by highlighting it and clicking the {} button. – cfr Mar 15 '15 at 0:08
• I am not looking to animate it nor am I looking to use Gnuplot. – user72255 Mar 15 '15 at 0:19
• Please don't discard with haste. Gnuplot is not essential nor animation. The single frame from the animation is identical to what you have. – percusse Mar 15 '15 at 0:29
• Thanks for adding your code. As it was, it wouldn't compile for sure. I've tried to complete it for you but please check to see I've not missed anything. (I didn't know what class you were using so I've guessed article.) I like the circle ;). – cfr Mar 15 '15 at 1:50

A beginning, maybe.

EDIT This version combines the two pictures I used in the original version, and uses backgrounds to demonstrate how to add the dashed lines. Two such lines are drawn to illustrate the method. (It isn't terribly tidy but the lines do appear in the intended places.)

EDIT 2 This version draws more lines via a loop and adds the perpendiculars down to the x axis.

\documentclass[a4paper]{article}% guessing (cfr)
\usepackage[landscape,scale=.9]{geometry}
\usepackage{tikz}
\usetikzlibrary{datavisualization.formats.functions,backgrounds,calc}
\def\mytypesetter#1{% page 813
\pgfmathparse{#1/pi}%
\pgfmathprintnumber{\pgfmathresult}$\pi$%
}
\begin{document}% added - surely necessary! (cfr)
\centering
\begin{tikzpicture}[scale=4,cap=round,>=latex,baseline={(0,0)}]
\draw[->] (-1.5cm,0cm) -- (1.5cm,0cm) node[right,fill=white] {$x$};
\draw[->] (0cm,-1.5cm) -- (0cm,1.5cm) node[above,fill=white] {$y$};

\draw[thick] (0cm,0cm) circle(1cm);

\foreach \x in {0,30,...,360} {
\draw[gray] (0cm,0cm) -- (\x:1cm);
\filldraw[black] (\x:1cm) coordinate (x\x) circle (0.4pt);
\draw (\x:0.6cm) node[fill=white] {$\x^\circ$};
}

\foreach \x/\xtext in {
30/\frac{\pi}{6},
45/\frac{\pi}{4},
60/\frac{\pi}{3},
90/\frac{\pi}{2},
120/\frac{2\pi}{3},
135/\frac{3\pi}{4},
150/\frac{5\pi}{6},
180/\pi,
210/\frac{7\pi}{6},
225/\frac{5\pi}{4},
240/\frac{4\pi}{3},
270/\frac{3\pi}{2},
300/\frac{5\pi}{3},
315/\frac{7\pi}{4},
330/\frac{11\pi}{6},
360/2\pi}
\draw (\x:0.85cm) node[fill=white] {$\xtext$};

\foreach \x/\xtext/\y in {
30/\frac{\sqrt{3}}{2}/\frac{1}{2},
45/\frac{\sqrt{2}}{2}/\frac{\sqrt{2}}{2},
60/\frac{1}{2}/\frac{\sqrt{3}}{2},
150/-\frac{\sqrt{3}}{2}/\frac{1}{2},
135/-\frac{\sqrt{2}}{2}/\frac{\sqrt{2}}{2},
120/-\frac{1}{2}/\frac{\sqrt{3}}{2},
210/-\frac{\sqrt{3}}{2}/-\frac{1}{2},
225/-\frac{\sqrt{2}}{2}/-\frac{\sqrt{2}}{2},
240/-\frac{1}{2}/-\frac{\sqrt{3}}{2},
330/\frac{\sqrt{3}}{2}/-\frac{1}{2},
315/\frac{\sqrt{2}}{2}/-\frac{\sqrt{2}}{2},
300/\frac{1}{2}/-\frac{\sqrt{3}}{2}}
\draw (\x:1.25cm) node {$\left(\xtext,\y\right)$};

\draw (-1.25cm,0cm) node[above=1pt] {$(-1,0)$}
(1.25cm,0cm)  node[above=1pt] {$(1,0)$}
(0cm,-1.25cm) node[fill=white] {$(0,-1)$}
(0cm,1.25cm)  node[fill=white] {$(0,1)$};
\begin{scope}[xshift=20mm]
\datavisualization
[
school book axes,
y axis={unit length=10mm},
x axis={unit length=2.5mm, ticks={step=(.5*pi), tick typesetter/.code=\mytypesetter{##1}}},
visualize as smooth line,
]
data [format=function] {
var x : interval [0:4*pi];
func y = sin(\value x r);
};
\end{scope}
\begin{scope}[on background layer]
\coordinate (o) at (0,0);
\foreach \i in {90,120,...,270}
{
\draw [densely dashed, opacity=.25, color=blue!50!cyan] (x\i) -- ({x\i} -| o) -- ++(20mm,0) -- ++(pi*\i/720,0) coordinate (xx\i) edge (xx\i |- o)  -- ++(.5*pi,0) coordinate (xxx\i) edge (xxx\i |- o);
}
\end{scope}
\end{tikzpicture}
\end{document}

• Nice! I just need to figure out how to do the dashed lines connecting the two... (: I'll go ahead and edit it so that the radians are in fractional form rather than in decimal. – user72255 Mar 15 '15 at 3:47
• We would also need the Y axis in the sine graph to extend to (0,1) and (0,-1) relative to the unit circle so they can connect. – user72255 Mar 15 '15 at 17:09
• @SinTheta Just change the unit length to whatever you need. – cfr Mar 15 '15 at 19:46
• How do I add the dashed lines connecting the values on the circle to the values on the graph? – user72255 Mar 15 '15 at 20:13
• @SinTheta See edited version above. You can use the backgrounds library to draw the lines but you need to combine the two tikzpicture environments. I've drawn 2 of the lines to illustrate the idea. – cfr Mar 15 '15 at 23:31