Bestand:Snells law wavefronts.gif

Uit testwiki
Naar navigatie springen Naar zoeken springen
Snells_law_wavefronts.gif (225 × 227 pixels, bestandsgrootte: 65 kB, MIME-type: image/gif, herhalend, 10 frames, 0,1 s)

Dit bestand is afkomstig van Wikimedia Commons en kan ook in andere projecten gebruikt worden. De bestandsbeschrijvingspagina wordt hieronder weergegeven.

Titel

Beschrijving

 Dit diagram is gemaakt met MATLAB.
Beschrijving
English: Illustration of wavefronts in the context of Snell's law.
Datum (UTC)
Bron Own work, created with MATLAB. (Source code below.)
Auteur Oleg Alexandrov
Toestemming
(Hergebruik van dit bestand)
Public domain Ik, de auteursrechthebbende van dit werk, geef dit werk vrij in het publieke domein. Dit is wereldwijd van toepassing.
In sommige landen is dit wettelijk niet mogelijk; in die gevallen geldt:
Ik sta iedereen toe dit werk voor eender welk doel te gebruiken, zonder enige voorwaarden, tenzij zulke voorwaarden door de wet worden voorgeschreven.
Andere versies
Bestand:Snells law wavefronts.svg is een vectorversie van dit bestand. Indien niet van slechtere kwaliteit dient deze gebruikt te worden in plaats van deze rasterafbeelding.

File:Snells law wavefronts.gif → File:Snells law wavefronts.svg

Zie Help:SVG voor meer informatie.

In andere talen
Alemannisch  العربية  беларуская (тарашкевіца)  български  বাংলা  català  нохчийн  čeština  dansk  Deutsch  Ελληνικά  English  British English  Esperanto  español  eesti  euskara  فارسی  suomi  français  Frysk  galego  Alemannisch  עברית  हिन्दी  hrvatski  magyar  հայերեն  Bahasa Indonesia  Ido  italiano  日本語  ქართული  한국어  lietuvių  македонски  മലയാളം  Bahasa Melayu  မြန်မာဘာသာ  norsk bokmål  Plattdüütsch  Nederlands  norsk nynorsk  norsk  occitan  polski  prūsiskan  português  português do Brasil  română  русский  sicilianu  Scots  slovenčina  slovenščina  српски / srpski  svenska  தமிழ்  ไทย  Türkçe  татарча / tatarça  українська  vèneto  Tiếng Việt  中文  中文(中国大陆)  中文(简体)  中文(繁體)  中文(马来西亚)  中文(新加坡)  中文(臺灣)  +/−
SVG-bestand

Source code

% Illustration of Snell's law
function main()

   % indexes of refraction
   n1=1.0;
   n2=1.5;

   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 = 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
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*[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  
end

Bijschriften

Beschrijf in één regel wat dit bestand voorstelt
Wavefronts from a point source of light.In a particuler wavefront u will see that the dist btw source & wavefront above the line is > dist btw source & wavefront below the line beacuse lightspeed is greater in the above and lower in below.

Items getoond in dit bestand

beeldt af

Bestandsgeschiedenis

Klik op een datum/tijd om het bestand te zien zoals het destijds was.

Datum/tijdMiniatuurAfmetingenGebruikerOpmerking
huidige versie5 jul 2009 10:59Miniatuurafbeelding voor de versie van 5 jul 2009 10:59225 × 227 (65 kB)wikimediacommons>Capmoreduced to 16 colors with no quality loss

Dit bestand wordt op de volgende pagina gebruikt: