% Solution of Problem 1-12 using Matlab
N = [3 4 8];
d = -15;
n = 1;
p = [ 0.2 0.3 -1.04];
k = [ 0.1 0 0.9];
disp('Intersect plane')
q = -(dot(p,N)+d)/dot(N,k)
p1 = p + q*k
% Normalize to unit vectors
k = k / norm(k);
N = N / norm(N);
disp('Refract ray')
Gi = n*dot(k,N)
Ii = acos(abs(Gi)/n)*180/pi
nr = 1.517;
Gr = sqrt(Gi^2 + nr^2 - n^2)
if Gi < 0.0
Gr = -Gr;
end
% refracted ray
kr = (n*k+(Gr-Gi)*N)/nr
>> prob1_12
Intersect plane
q =
2.8693
p1 =
0.4869 0.3000 1.5424
Refract ray
Gi =
0.8779
Ii =
28.6065
Gr =
1.4395
kr =
0.1905 0.1569 0.9691
Maintained by John Loomis, last updated 10 Sept, 1997