# Trigonometric Slide Rule

## Motivation

Hey physics, what do you think of “cos only” method of finding [vector] components? Compl angle and only use cos instead of same °, other trig func

His motivation was that students have trouble remembering which vector component requires cosine versus sine.  For a long time, I’ve wanted to collaborate with our 9th grade geometry teachers to run a few quick trigonometry measurement labs, in which students take data in physics class and analyze/use the data in math class.  I’d want to do it Modeling-style, where we don’t give them names for the ratios, just try to understand the relationship between angles and sides in a right triangle.  Students would (hopefully) come away with a better understanding of similarity and trigonometric ratios.  However, until the day comes that I finally write said curricular materials, I had the idea of making a trigonometric “slide rule” that students could use to look up angles and determine the cosines and sines (without necessarily using those names).

## GeoGebra version

See the Trigonometric Slide Rule on GeoGebraTube.  This version is the easiest to use and gives you answers.  No graph reading.  Of course, if we are using a computer, we might as well use the computer to solve the full polar to rectangular problem, but if you want students to understand ratios, it’s probably best to leave them a little mental work.

## Paper-and-pencil version

### For students

One version blanks the grid outside the circle, and one version has a grid outside the circle.  Students should be able to estimate the cosine and sine of angles to 2 decimal places.

### For teachers

This version lists the coordinates of points every 5 degrees.  The coordinates have 3 decimal places.

### Source code

I used Asymptote to create the graphics.  I have my version set to output PDF by default, but otherwise, here’s the sourcecode:

```import graph;

defaultpen(fontsize(10));
pen thick_p = linewidth(1.5);
pen axis_p = black+fontsize(8);
pen grid_major_p = gray(0.5)+linewidth(1.0);
pen grid_minor_p = gray(0.7)+linewidth(0.5);
pen circle_p = thick_p+black;
pen degree_p = black;

real tick_major = 0.1;
real tick_minor = 0.02;
real tick_low = 0.97;
real tick_high = 1.03;
int tick_every = 5;

// letter paper with 0.5" margins:
real width = 8.5 inches - 2*0.5 inches;
real height = 11 inches - 2*0.5 inches;
size(width, height);

scale(true, true);
xlimits(-1.1,1.1);
ylimits(-1.1,1.1);

real axis_extend = 1.0;
real xmin = -axis_extend;
real xmax = axis_extend;
real ymin = -axis_extend;
real ymax = axis_extend;

real dummy(real x) { return 1.001*x; }
draw(graph(dummy,-1.0,1.0),invisible);
pen thin=linewidth(0.5*linewidth());
xaxis("",axis=LeftRight,axis_p,xmin=-1.1,xmax=1.1,Ticks(format="%",beginlabel=false,endlabel=false,Step=tick_major,step=tick_minor,begin=true,end=true,extend=true,pTick=grid_major_p,ptick=grid_minor_p),above=false);
yaxis("",axis=LeftRight,axis_p,ymin=-1.1,ymax=1.1,Ticks(format="%",beginlabel=false,endlabel=false,Step=tick_major,step=tick_minor,begin=true,end=true,extend=true,pTick=grid_major_p,ptick=grid_minor_p),above=false);
xaxis("",axis=YZero,axis_p,xmin=xmin,xmax=xmax,LeftTicks(beginlabel=false,endlabel=false,Step=tick_major,step=tick_minor,begin=false,end=false,NoZero,extend=false,pTick=axis_p,ptick=grid_minor_p),above=false);
yaxis("",axis=XZero,axis_p,ymin=ymin,ymax=ymax,RightTicks(beginlabel=false,endlabel=false,Step=tick_major,step=tick_minor,begin=false,end=false,NoZero,extend=false,pTick=axis_p,ptick=grid_minor_p),above=false);
draw((-1,0)--(1,0),axis_p+thick_p);
draw((0,-1)--(0,1),axis_p+thick_p);

path unitsquare = (-1,-1)--(-1,1)--(1,1)--(1,-1)--cycle;
//filldraw(Circle((0,0),1)^^(scale(1.1)*unitsquare),evenodd+white,white); // mask the grid outside the circle
for(int angle = 1; angle < 360; ++angle) {
if (angle % tick_every == 0) continue;