File:Lens and wavefronts.gif
From Wikimedia Commons, the free media repository
Jump to navigation
Jump to search
Lens_and_wavefronts.gif (183 × 356 pixels, file size: 35 KB, MIME type: image/gif, looped, 9 frames, 0.7 s)
File information
Structured data
Captions
slnglelens
Summary
[edit]DescriptionLens and wavefronts.gif | Illustration of wavefronts after passing through a lens. Interestingly, to produce a point source reverse the direction of the waves, with the focus point acting as a point source. |
Date | (UTC) |
Source | self-made with MATLAB |
Author | Oleg Alexandrov |
Other versions |
This diagram was created with MATLAB.
Licensing
[edit]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. |
siingleline
[edit]% Illustration of planar wavefronts going through a lens and getting focused
% into a converging spherical wave
function main ()
% lens index
n=1.5;
% number of points, used for plotting
N = 100;
% radii of lens surfaces
R1 = 0.5;
R2 = 1.5;
% centers of circles (y coord is 0)
O1 = -2.9;
O2 = -O1;
% focal length
f = (n-1)*(1/R1+1/R2); f = 1/f;
% theta0 determines the width of the lens
theta0=pi/6;
Theta = linspace(-theta0, theta0, N);
% right face of the lens
L1x = R1*cos(Theta)+O1;
L1y =R1*sin(Theta);
% left size of the lens
L2x=-R2*cos(Theta)+O2;
L2y = R2*sin(Theta);
% flat top part
Topx = [L1x(N), L2x(N)];
Topy = [L1y(N), L2y(N)];
% flat bottom part
Botx = [L1x(1) L2x(1)];
Boty = [L1y(1), L2y(1)];
% the lens
Lensx = [L1x rv_vec(Topx), rv_vec(L2x), Botx];
Lensy = [L1y rv_vec(Topy), rv_vec(L2y), Boty];
% Parameters for graphing
Lens_color = [204, 226, 239]/256;
Lens_border = 0.3*[1, 1, 1];
lbw = 1.3; % lens border width
wavefr_color = [1, 0, 0];
wavefr_bdw = 2;
% spacing between wavefronts (both plane and spherical ones)
spacing = 0.25;
% 2*H is the height of the plane wavefronts
H = L1y(N);
% theta2 = slope of the line going from the upper-right
% end of the lens to the focus point
theta2 = atan(L1y(N)/(f-L1x(N)));
% Shape of the spherical wavefronts.
Theta = linspace(-theta2, theta2, N);
X = -cos(Theta);
Y = sin(Theta);
S = -f; % start ploting waves from here to the right
% number of frames in the movie
num_frames = 10;
Shifts = linspace(0, spacing, num_frames+1);
% start at S+shift, plot the wavefronts
for frame_no = 1:num_frames
shift = Shifts(frame_no);
s = S+shift;
% plotting window
figure(1); clf; hold on; axis equal; axis off;
% plot the plane wavefronts
while s < 0
plot([s, s], [-H, H], 'color', wavefr_color, 'linewidth', wavefr_bdw);
s = s + spacing;
end
% plot the spherical wavefronts
s = s - 10*spacing; % backtrack a bit
while s < f
rho = f-s;
if rho*Y(N) <= L1y(N)
plot(rho*X+f, rho*Y, 'color', wavefr_color, 'linewidth', wavefr_bdw);
end
s = s + spacing;
end
% plot the lens
fill(Lensx, Lensy, Lens_color, 'EdgeColor', Lens_border, 'LineWidth', lbw);
% get(H)
% return
% Invisible points to force MATLAB to keep the
% plotting window fixed.
tiny = 0.15*spacing;
white = 0.999*[1, 1, 1];
plot(S-tiny, H+tiny, 'color', white);
plot(S-tiny, -H-tiny, 'color', white);
plot(f+tiny, H+tiny, 'color', white);
plot(f+tiny, -H-tiny, 'color', white);
% Rotate by 90 degrees
set(gca, 'View', [90, 90])
% save current file
frame_file = sprintf('Frame%d.eps', 1000+frame_no);
disp(frame_file);
saveas(gcf, frame_file, 'psc2');
pause(0.07)
end
% The frames were converted to a movie with the command
% convert -antialias -loop 10000 -delay 8 -compress LZW Frame100* Lens_and_wavefronts.gif
function W = rv_vec(V)
K = length(V);
W = V;
for i=1:K
W(i) = V(K-i+1);
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 | 06:35, 25 November 2007 | 183 × 356 (35 KB) | Oleg Alexandrov (talk | contribs) | tweak | |
04:10, 24 November 2007 | 171 × 356 (33 KB) | Oleg Alexandrov (talk | contribs) | tweak | ||
04:09, 24 November 2007 | 171 × 356 (33 KB) | Oleg Alexandrov (talk | contribs) | tweak | ||
00:56, 24 November 2007 | 171 × 359 (33 KB) | Oleg Alexandrov (talk | contribs) | tweak, same license | ||
00:53, 24 November 2007 | 171 × 359 (32 KB) | Oleg Alexandrov (talk | contribs) | tweak | ||
00:49, 24 November 2007 | 151 × 359 (31 KB) | Oleg Alexandrov (talk | contribs) | {{Information |Description=Illustration of wavefronts after passing through a [:en:lens (optics)|lens]] |Source=self-made with MATLAB |Date=~~~~~ |Author= Oleg Alexandrov |Permission=see below |other_versions= }} |
You cannot overwrite this file.
File usage on Commons
There are no pages that use this file.
File usage on other wikis
The following other wikis use this file:
- Usage on ar.wikipedia.org
- Usage on ast.wikipedia.org
- Usage on be.wikipedia.org
- Usage on bn.wikipedia.org
- Usage on bs.wikipedia.org
- Usage on ckb.wikipedia.org
- Usage on cs.wikiversity.org
- Usage on cv.wikipedia.org
- Usage on en.wikipedia.org
- Usage on en.wikiversity.org
- Usage on es.wikipedia.org
- Usage on es.wikiversity.org
- Usage on eu.wikipedia.org
- Usage on fa.wikipedia.org
- Usage on fi.wikipedia.org
- Usage on fr.wikipedia.org
- Usage on fr.wikibooks.org
- Usage on fy.wikipedia.org
- Usage on ga.wikipedia.org
- Usage on he.wikipedia.org
- Usage on hi.wikipedia.org
- Usage on hr.wikipedia.org
- Usage on hy.wikipedia.org
- Usage on id.wikipedia.org
- Usage on ko.wikipedia.org
- Usage on lt.wikipedia.org
- Usage on lv.wikipedia.org
- Usage on ml.wikipedia.org
- Usage on mn.wikipedia.org
- Usage on nl.wikipedia.org
- Usage on pa.wikipedia.org
- Usage on ru.wikipedia.org
- Usage on sh.wikipedia.org
- Usage on si.wikipedia.org
- Usage on sl.wikipedia.org
- Usage on sr.wikipedia.org
- Usage on sv.wikipedia.org
View more global usage of this file.