Similar triangles of the unit circle

Drag B on the unit circle. Why are these triangles similar?

B (drag)

tan = %v

sin

sec - cos

A

B

E

sec = %v

tan = %v

sin = %v

cos = %v

D

B

A

csc = %v

cot = %v

Some of the similar triangles of the unit circle.

V: (0, 1)
U: (1, 0)
c = Circle((0, 0), 1)
A = Intersect(xAxis, yAxis)
c_2 = CircleArc(A, U, V)
B = Point(c_2)
f = OrthogonalLine(B, xAxis)
C = Intersect(f, xAxis)
g = Segment(A, B)
h = OrthogonalLine(B, g)
D = Intersect(h, yAxis)
E = Intersect(h, xAxis)
i = Segment(B, E)
j = Segment(B, D)
k = Segment(B, C)
l = Segment(C, A)
F = (0.6586711186887477, 1.0399845874352658)
G = (1.258671118688747, 1.0399845874352658)
m = Line(F, G)
H = Point(m)
d = Circle(H, k)
I = Intersect(d, m, 2)
n = OrthogonalLine(I, m)
α = Angle(C, A, B)
I' = Rotate(I, α, H)
β = Angle(I, H, I')
p = Ray(H, I')
J = Intersect(n, p)
t1, e, b, c_1 = Polygon(B, C, E)
t2, i_1, j_1, h_1 = Polygon(J, H, I)
K = Point(m)
q = Circle(K, g)
L = Intersect(q, m, 2)
L' = Rotate(L, α, K)
γ = Angle(L, K, L')
r = OrthogonalLine(L, m)
s = Ray(K, L')
M = Intersect(r, s)
t3, e_1, segtan2, segsec2 = Polygon(A, B, E)
t4, segsec, segtan, radius1 = Polygon(K, M, L)
t5, radius, segsin, segcos = Polygon(A, B, C)
t6, d_1, segcot2, segcsc2 = Polygon(A, B, D)
N = Point(m)
t = Circle(N, segcot2)
O, P = Intersect(t, m)
f_1 = OrthogonalLine(P, m)
P' = Rotate(P, α, N)
δ = Angle(P, N, P')
g_1 = Ray(N, P')
Q = Intersect(f_1, g_1)
t7, segcsc, radius2, segcot = Polygon(N, Q, P)
r_1 = OrthogonalLine(L, segsec)
R = Intersect(r_1, segsec)
S: (x(L), y(L))
s_1 = Segment(R, S)
t_1 = Segment(R, K)
k_1 = Circle(Q, 1)
T = Intersect(k_1, segcsc)
p_1 = CircleArc(Q, T, P)
q_1 = CircleArc(K, L, L')
ε = Angle(Q, P, N)
ζ = Angle(M, L, K)
η = Angle(A, B, E)
θ = Angle(D, B, A)