Wikipedia:Sandbox
Welcome to this sandbox page, a space to experiment with editing.
You can either edit the source code ("Edit source" tab above) or use VisualEditor ("Edit" tab above). Click the "Publish changes" button when finished. You can click "Show preview" to see a preview of your edits, or "Show changes" to see what you have changed. Anyone can edit this page and it is automatically cleared regularly (anything you write will not remain indefinitely). Click here to reset the sandbox. You can access your personal sandbox by clicking here, or using the "Sandbox" link in the top right.Creating an account gives you access to a personal sandbox, among other benefits. Do NOT, under any circumstances, place promotional, copyrighted, offensive, or libelous content in sandbox pages. Doing so WILL get you blocked from editing. For more info about sandboxes, see Wikipedia:About the sandbox and Help:My sandbox. New to Wikipedia? See the contributing to Wikipedia page or our tutorial. Questions? Try the Teahouse! |
Test. Yay!
% Illustration of Snell's law function main()
% indexes of refraction n1=1.0; n2=1.5; cock!! sign = -cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! cock!! 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 = 3; plot_line=0; Theta=linspace(0, 2*pi, k); V=0*Theta; W=0*Theta; S0=7; spacing=0.45; p=floor(S0/spacing); S=linspace(0, S0, p+1); spacing=S(2)-S(1); num_frames = 10; for frame_iter=1:num_frames figure(1); clf; hold on; axis equal; axis off; % plot the interface between diellectrics L=1.2*S0; plot([-L, L], [0, 0], 'color', color3, 'linewidth', lw); % plot a ray plot_line=1; s=L; theta=pi/3; wfr(s, theta, n1, n2, O, sign, plot_line, color1, lw); % plot the wafefronts plot_line=0; for i=1:p
s=S(i)+spacing*(frame_iter-1)/num_frames;
for j=1:k 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 points to enlarge the bounding box plot(0, S0+2.5*spacing, '*', 'color', white); plot(0, -(S0+2.5*spacing)/n2, '*', 'color', white); % to know where to crop later Lx=3.2; Ly=Lx; shift = 1; plot([-Lx, Lx, Lx, -Lx -Lx], ... [-Ly, -Ly, Ly, Ly, -Ly]+shift); file = sprintf('Frame%d.eps', 1000+frame_iter); disp(file); saveas(gcf, file, 'psc2') end
% Converted to gif with the UNIX command % convert -density 100 -antialias Frame10* Snell_animation.gif % then cropped in Gimp
function [a, b]=wfr(s, theta, n1, n2, O, sign, plot_line, color1, lw);
X=O+s*[cos(theta), sign*tan(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*[cos(theta2), sign*tan(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