Ray

Beam Source

{S_x, S_y}

Screen Overscript[AB, _] & Point P

PQ = ArcTan[A_x - B_x, A_y - B_y] ;

PD = (P_x - A_x) Cos[PQ] + (P_y - A_y) Sin[PQ] ;

{P_x, P_y} = {A_x + PD Cos[PQ], A_y + PD Sin[PQ]} ;

Normal & Source

NQ = ArcTan[A_y - B_y, B_x - A_x] ;

SQ = ArcTan[S_x - P_x, S_y - P_y] ;

Reflect Ray Line Overscript[S→P→E, _]

EQ = 2NQ - SQ ;

ED = (E_x - P_x) Cos[EQ] + (E_y - P_y) Sin[EQ] ;

{E_x, E_y} = {P_x + ED Cos[EQ], P_y + ED Sin[EQ]} ;

Refract Ray Line Overscript[S→P→R, _]

RQ = NQ - ArcSin[n Sin[SQ - NQ]] ;

RD = (R_x - P_x) Cos[RQ] + (R_y - P_y) Sin[RQ] ;

{R_x, R_y} = {P_x + RD Cos[RQ], P_y + RD Sin[RQ]} ;

Reflect

Refract

A = ArcTan[i2 - i1, j2 - j1]

B = ArcTan[i0 - i1, j0 - j1]

T = ArcTan[n1 - i1, m1, j1]

Q1 = T - A

Q2 = T - π - B

Sin[Q1] = n Sin[Q2]

Sin[T - A] = n Sin[B - T]

Circle

x^2 + y^2 = r^2 ; F (0, 0) ;

x1 x + y1 y = r^2 ; (*Tanget*)

{x, y} = {r Cos[Q], r Sin[Q]} ;

Turret Parabola

y^2 = 4P x ; F (P = y1^2/(4 x1), 0) ;

y1 y = 2P (x + x1) ; (*Tanget*)

{x, y} = {t^2/(4P), t}

Solve[(Fy - y)^2 == 4 P (Fx - x), y]//InputForm

Solve[{y == Fy + 2 (P (Fx - x))^(1/2), y == Tan[HQ] (x - Sx) + Sy}, {x, y}]//InputForm

Turret Hyperbola

y^2/b^2 - x^2/a^2 == 1 ; F (0, ± (a^2 + b^2)^(1/2)) ;

(y1 y)/b^2 - (x1 x)/a^2 == 1 ; (*Tanget*)

{x, y} = {a Tan[Q], b Sec[Q]} ;

Solve[{y^2/b^2 - x^2/a^2 == 1, y == Tan[HQ] (x - Sx) + Sy}, {x, y}]//InputForm