File:Snells law wavefronts.svg
From Wikimedia Commons, the free media repository
Jump to navigation
Jump to search
Size of this PNG preview of this SVG file: 410 × 342 pixels. Other resolutions: 288 × 240 pixels | 576 × 480 pixels | 921 × 768 pixels | 1,228 × 1,024 pixels | 2,455 × 2,048 pixels.
Original file (SVG file, nominally 410 × 342 pixels, file size: 68 KB)
File information
Structured data
Captions
DescriptionSnells law wavefronts.svg | Illustration of wavefronts in the context of Snell's law. |
Date | (UTC) |
Source | self-made with MATLAB |
Author | Oleg Alexandrov |
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')
%plot2svg('Snells_law_wavefronts.svg')
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 | 04:18, 6 January 2008 | 410 × 342 (68 KB) | Oleg Alexandrov (talk | contribs) | Tweak bd box, same license | |
20:24, 5 January 2008 | 512 × 427 (68 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 2 pages use this file:
File usage on other wikis
The following other wikis use this file:
- Usage on fr.wikipedia.org
- Usage on fr.wikibooks.org