Path: Imaging/Optics
% Apply Snell's law of refraction to a curve of the form s(1)x^2 + s(2)y^2 + s(3)xy + s(4)x + s(5)y + s(6) = 0 A circle of radius 2 with origin [0;0] would have s = [1 1 0 0 0 -4] If the lens center is on the x axis and its radius is r we get (x-x0)^2 + y^2 = r^2 or [1 1 0 -2x0 0 x0^2-r^2] with a ray of the form x = at + x0, y = bt + y0; All output vectors are unitized. Type SnellsLaw for a demo showing 3 rays hitting a circle. ------------------------------------------------------------------------ Form: [rO, miss] = SnellsLawCurve( r, s, nO, nI, isConcave ) ------------------------------------------------------------------------ ------ Inputs ------ r (:) Ray structure .m (2,1) [a;b] (slopes) .p (2,1) [x0;y0] s (1,6) Curve coefficients [x^2 y^2 xy x y 1] nO (1,1) Index of refraction outside nI (1,1) Index of refraction inside isConcave (1,1) 1 = concave default is convex ------- Outputs ------- rO (:) Ray structure .m (2,1) [a;b] .p (2,1) [x0;y0] miss (:) 1 if the ray missed ------------------------------------------------------------------------ Reference: Hanrahan, P. "Refraction" ------------------------------------------------------------------------
Imaging: Optics/ReflectionLaw Imaging: Optics/SnellsLaw Math: Linear/Unit
Back to the Imaging Module page