Prism
Author: Lenore Horner

Move point B to change the apex angle of the prism.
Move point E to change the angle of incidence.
Move point D as needed to control where light strikes the right side of the prism.
Use sliders to change the indices of refraction of the prism and what the prism is surrounded by.

What happens when the indices of refraction are identical?
What does it mean when the outgoing ray disappears?  
For a given prism, what can you change to make the ray disappear?
For a given angle of incidence and apex angle, can you make the ray disappear?

n_{medium} = 1 (slider from 1 to 5, step 0.1)
n_{prism} = 1.6 (slider from 1 to 5, step 0.1)
A = Point(yAxis)
B = Point(xAxis)
C: (-x(B), 0.0)
a = Segment(A, B)
b = Segment(B, C)
c = Segment(C, A)
D = Point(a)
E = (-4, 5)
d = OrthogonalLine(D, a)
e = Segment(E, D)
α = Angle(B, A, C)
F = Point(d)
G = Point(d)
f = Segment(F, G)
β = Angle(F, D, E)
γ: 180.0 / 3.141592653589793 * asin(n_{prism} / n_{medium} * sin(β * 3.141592653589793 / 180.0))
G' = Rotate(G, γ, D)
δ = Angle(G, D, G')
g = Ray(D, G')
H = Intersect(c, g)
h = OrthogonalLine(H, c)
I = Point(h)
J = Point(h)
i = Segment(I, J)
j = Segment(D, H)
ε = Angle(G', H, I)
ζ: asin(n_{prism} / n_{medium} * sin(ε))
J' = Rotate(J, -(ζ), H)
η = Angle(J', H, J)
k = Ray(H, J')