Unit circle and trig graphs (adapted from sbismarck)
Author: sbismarck
Date: 2 September 2015

Check one (or more) of the trigs function to see the graph.
Drag the red point around to see the relationship to the graph.

sin(x)

cos(x)

tan(x)

cot(x)

sec(x)

csc(x)

k = 0 (slider from -5 to 5, step 0.1)
h = 0 (slider from -5 to 5, step 0.1)
A = (2.4085594419148877, 2.719013091771655)
a = Line(A, xAxis)
B_1 = Point(a)
b = Segment(A, B_1)
B = 1 (slider from 0 to 10, step 0.1)
D = Intersect(xAxis, yAxis)
c = Circle(A, b)
C = Point(c)
d = Segment(A, C)
α = Angle(B_1, A, C)
E = Point(Circle[D, α])
e = Segment(D, E)
h_1 = OrthogonalLine(C, b)
F = Intersect(h_1, a)
Sine = Segment(C, F)
G = Intersect(c, a, 2)
i = Segment(G, A)
Cosine = Segment(A, F)
j = OrthogonalLine(C, d)
H = Intersect(a, j)
Tangent = Segment(C, H)
k_1 = Segment(B_1, H)
g(x) = b * cos(B * x - h) + k
l = OrthogonalLine(E, xAxis)
I = Intersect(g, l, (0.7060563118551848, 0.7644762293889116))
f(x) = b * sin(B * x - h) + k
J = Intersect(f, l, (0.7060563118551848, 0.6518647158027385))
n(x) = b * tan(B * x - h) + k
K = Intersect(n, l, (0.7060563118551848, 0.8566722661542439))
q = Segment(J, E)
r = Segment(I, E)
p = Segment(K, E)
f_1(x) = b * csc(B * x - h) + k
L = Intersect(f_1, l, (0.7060563118551848, 1.5484064232044026))
g_1(x) = b * sec(B * x - h) + k
n_1(x) = b * cot(B * x - h) + k
M = Intersect(g_1, l, (0.7060563118551848, 1.3203177210834975))
N = Intersect(n_1, l, (0.7060563118551848, 1.1782236368412318))
text2: "f(x) = " + b + "" + g + ""
text3: "f(x) = " + b + "" + n + ""
text5: "f(x) = " + b + "" + g_1 + ""
w = true
m = false
o = false
a_1 = OrthogonalLine(C, d)
b_1 = OrthogonalLine(A, i)
O = Intersect(a_1, b_1)
Cotangent = Segment(O, C)
c_1 = OrthogonalLine(N, xAxis)
P = Intersect(c_1, xAxis)
d_1 = Segment(N, P)
z = false
s = Line(A, B_1)
e_1 = OrthogonalLine(C, d)
Q = Intersect(s, e_1)
i_1 = Segment(C, Q)
Secant = Segment(A, Q)
j_1 = OrthogonalLine(M, xAxis)
R = Intersect(j_1, xAxis)
l_1 = Segment(M, R)
v = false
text4: "f(x) = " + b + "" + n_1 + ""
text6: "f(x) = " + b + "" + f_1 + ""
m_1 = OrthogonalLine(A, i)
p_1 = OrthogonalLine(C, d)
S = Intersect(m_1, p_1)
Cosecant = Segment(S, A)
q_1 = OrthogonalLine(L, xAxis)
T = Intersect(q_1, xAxis)
r_1 = Segment(L, T)
u = false
U = Intersect(c, b, 1)