Regnbuen.
Her har jeg prøvet at forstå, hvordan en regnbue opstår: Lysstråler fra solen afbøjes i hver eneste lille vanddråbe, som vist til venstre. Du kan se, hvordan det går med mange forskellige stråler, ved at flytte strålen op og ned.
På figuren til højre har jeg aftegnet den afbøjningvinkel (ved punktet P), som bliver slutresultatet. Læg mærke til at lysstrålerne kan afbøjes i mange forskellige retninger, men at særlig mange afbøjes i den retning, der svarer til toppunktet på kurven til højre.
Set under den vinkel vil en vanddråbe derfor synes ekstra lysstærk. Disse vanddråber vil udgøre en cirkel med centrum i et punkt på himlen, som er diametralt modsat solen.
Nu er denne beregning lavet for en bestemt spektralfarve. Refraktionsindekset ved overgangen mellem luft og vand varierer jo med frekvensen. Derfor vil den vinkel, hvor vanddråberne synes ekstra lysstærke variere med lysets farve. Deraf kommer regnbuen.
Figure figure1 = Position [0,0] Size[x/2,y] Origin[x/5,y/3] Unit x/18 Color "white";
Figure figure2 = Position [x/2,0] Size[x/2,y] Origin[x*13/24,y*5/6] Unit x/240 Color "white";
Line xakse = Start [-10,0] Dir [120,0] Vector Size 1 Color "black";
Line yakse = Start [0,-15] Dir [0,95] Vector Size 1 Color "black";
Grid grid2 = Color "blue";
Units units2 = Color "black";
Variable n = 1.332;
Function refract( Number i, Number index ) = asin( index * sin(i) );
Function bend( Number i, Number index ) = 4*refract(i,index)-2*i;
Use figure1;
Circle droplet = Center [0,0] Radius 1 Size 2 Color "blue";
Line slide = Start [-3,0] Dir [0,1] Size 1 Color "grey";
Point handle = [-3,.75] Slider slide Size 4 Color "red";
Variable i = asin(handle:1);
Variable b = refract(i,1/n);
Variable ex = pi-2*b;
Variable p1 = [cos(pi-i),sin(pi-i)];
Variable p2 = [cos(pi-i-ex),sin(pi-i-ex)];
Variable p3 = [cos(pi-i-2*ex),sin(pi-i-2*ex)];
Line ray1 = Start handle Dir p1-handle Size 2 Color "red";
Line norm1 = Start [0,0] Dir p1 Ray Size 1 Color "gray";
Line ray2 = Start p1 Dir p2-p1 Size 2 Color "red";
Line norm2 = Start [0,0] Dir p2 Ray Size 1 Color "gray";
Line ray3 = Start p2 Dir p3-p2 Size 2 Color "red";
Line norm3 = Start [0,0] Dir p3 Ray Size 1 Color "gray";
Variable d = [cos(pi-2*i-2*ex),sin(pi-2*i-2*ex)];
Line ray4 = Start p3 Dir d Ray Size 2 Color "red";
Point p4 = intersect( handle, p1, p3, p3+d ) Size 1 Color "gray";
Line help1 = Start p1 Dir p4-p1 Size 1 Color "gray";
Line help2 = Start p3 Dir p4-p3 Size 1 Color "gray";
Label lab_p = "P" At p4 Offset [10,10] Color "black";
Circle bue_i = Center p1 Radius .3 From angle(p1) To pi Size 1 Color "gray";
Circle bue_b = Center p1 Radius .3 From angle(-p1) To angle(p2-p1) Size 1 Color "gray";
Circle bue_p4 = Center p4 Radius .3 From angle(p1-p4) To angle(p3-p4) Size 1 Color "gray";
Circle bue_p2 = Center p2 Radius .3 From angle(p1-p2) To angle(p3-p2) Size 1 Color "gray";
Circle bue_p3 = Center p3 Radius .3 From angle(p2-p3) To angle(-p3) Size 1 Color "gray";
Circle bue_p3b = Center p3 Radius .3 From angle(d) To angle(p3) Size 1 Color "gray";
Use figure2;
Graph g = if x > 0 & x < 90 then bend(x*pi/180,1/n)*180/pi endif Size 1 Color "black";
Point gp = [i,bend(i,1/n)]*180/pi Size 3 Color "red";
Label textx = "i" At [108,-4] Offset [0,0] Color "black" Style "font-family:MJX_MATH;font-size:120%;";
Label texty = "P" At [-5,78] Offset [0,0] Color "black" Style "font-family:MJX_MATH;font-size:120%;";