File:Snells_law_wavefronts.png
De Wikipedia, la enciclopedia encyclopedia
Snells_law_wavefronts.png (360 × 314 píxeles; tamaño de archivo: 62 kB; tipo MIME: image/png)
Este es un archivo de Wikimedia Commons, un depósito de contenido libre hospedado por la Fundación Wikimedia. Más abajo se reproduce su página de descripción con la información sobre su origen y licencia. |
DescripciónSnells law wavefronts.png | Illustration of wavefronts in the context of Snell's law. |
Fecha | (UTC) |
Fuente | self-made with MATLAB |
Autor | Oleg Alexandrov |
Este archivo ha sido reemplazado por File:Snells law wavefronts.svg. Se recomienda usar el otro archivo. Nota: este archivo no será borrado a menos que sea explícitamente propuesto para ser borrado. Motivo: Same image, just in SVG
|
Public domainPublic domainfalsefalse |
Yo, el titular de los derechos de autor de esta obra, lo libero al dominio público. Esto aplica en todo el mundo. En algunos países esto puede no ser legalmente factible; si ello ocurriese: Concedo a cualquier persona el derecho de usar este trabajo para cualquier propósito, sin ningún tipo de condición al menos que éstas sean requeridas por la ley. |
Source code (MATLAB)
% 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
Elementos representados en este archivo
representa a
Algún valor sin elemento de Wikidata
Historial del archivo
Haz clic sobre una fecha y hora para ver el archivo tal como apareció en ese momento.
Fecha y hora | Miniatura | Dimensiones | Usuario | Comentario | |
---|---|---|---|---|---|
actual | 05:36 1 ene 2008 | 360 × 314 (62 kB) | Oleg Alexandrov | {{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- |
Usos del archivo
No hay páginas que enlacen a este archivo.