File:Snells law wavefronts.png
From Wikimedia Commons, the free media repository
Jump to navigation
Jump to search
Snells_law_wavefronts.png (360 × 314 pixels, file size: 62 KB, MIME type: image/png)
File information
Structured data
Captions
Captions
Add a one-line explanation of what this file represents
DescriptionSnells law wavefronts.png | Illustration of wavefronts in the context of Snell's law. |
Date | (UTC) |
Source | self-made with MATLAB |
Author | Oleg Alexandrov |
![]() |
This file has been superseded by Snells law wavefronts.svg. It is recommended to use the other file. Please note that deleting superseded images requires consent. Reason to use the other file: "Same image, just in SVG"
|
![]() |
Public domainPublic domainfalsefalse |
![]() |
I, the copyright holder of this work, release this work into the public domain. This applies worldwide. In some countries this may not be legally possible; if so: I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law. |
% Illustration of Snell's law
function main()
n1=1.0;
n2=1.5;
figure(1); clf; hold on; axis equal; axis off;
sign = -1;% is the source up or down?
O=[0, -1*sign];
k=500;
% KSmrq's colors
red = [0.867 0.06 0.14];
blue = [0, 129, 205]/256;
green = [0, 200, 70]/256;
yellow = [254, 194, 0]/256;
white = 0.99*[1, 1, 1];
black = [0, 0, 0];
gray = 0.5*white;
color1=red;
color2=blue;
color3=gray;
lw = 4;
plot_line=0;
Theta=linspace(0, 2*pi, k);
V=0*Theta; W=0*Theta;
S0=4;
spacing=0.45;
p=floor(S0/spacing);
S=linspace(0, S0, p+1)+0.1*spacing;
% plot the interface between diellectrics
L=3.8;
plot([-L, L], [0, 0], 'color', color3, 'linewidth', lw);
% plot a ray
plot_line=1;
s=5.2;
theta=pi/3; wfr(s, theta, n1, n2, O, sign, plot_line, color1, lw);
% plot the wafefronts
plot_line=0;
for i=1:p
for j=1:k
s=S(i);
theta=Theta(j);
[V(j), W(j)]=wfr(s, theta, n1, n2, O, sign, plot_line, color1, lw);
end
plot(V, W, 'color', color2, 'linewidth', lw);
end
% dummy point to enlarge the bounding box
plot(0, S0+1.5*spacing, '*', 'color', white);
saveas(gcf, 'Snells_law_wavefronts.eps', 'psc2')
function [a, b]=wfr(s, theta, n1, n2, O, sign, plot_line, color1, lw);
X=O+s*[sin(theta), sign*cos(theta)];
if( sign*X(2) > 0 )
t=-sign*O(2)/cos(theta);
X0=O+t*[sin(theta), sign*cos(theta)];
if (plot_line == 1)
plot([O(1), X0(1)], [O(2), X0(2)], 'color', color1, 'linewidth', lw, 'linestyle', '--');
end
d = norm(O-X0);
r = (s-d)*(n2/n1)^(sign);
theta2=asin(n1*sin(theta)/n2);
XE=X0+r*[sin(theta2), sign*cos(theta2)];
else
XE = X;
end
a = XE(1);
b = XE(2);
if (plot_line==1)
plot([X0(1), XE(1)], [X0(2), XE(2)], 'color', color1, 'linewidth', lw, 'linestyle', '--');
end
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 05:36, 1 January 2008 | ![]() | 360 × 314 (62 KB) | Oleg Alexandrov (talk | contribs) | {{Information |Description=Illustration of wavefronts in the context of Snell's law. |Source=self-made with MATLAB |Date=~~~~~ |Author= Oleg Alexandrov |Permission= |other_versions= }} {{PD- |
You cannot overwrite this file.
File usage on Commons
The following page uses this file: