Dopplerův jev

Vizualizace oscilátoru

Tento aplet umožňuje lépe si představit, co se děje v blízkém okolí oscilátoru, když dochází k Dopplerovu jevu. Tuto situaci si lze přiblížit ve 2D, nebo 3D pohledu změnou stavu zašktrávacího políčka Zobraz 3D. Ve 3D pohledu si lze oscilátor přiblížit pomocí posuvníku Zoom 3D.

Tlačítko Uložit obrázek uloží aktuální stav animace do složky, v níž je uložen tento notebook, pod názvem uloženým v proměnné FileName, k čemuž se navíc připojí i pořadové číslo ukládaného obrázku. Nutno si uvědomit, že se při každém spuštění apletu obrázky začínají číslovat od jedné, a tak může dojít k přepsání obrázků předchozích.

Zdrojový kód

c=299792458;
r=0.1;
vel=r+5;
barvavektoru=Lighter[Blue];
FileName="dopler_.jpg";
path=NotebookDirectory[];
saved=0;
Doppler=Manipulate[
posun=(Sqrt[1-(v^2/c^2)]);
Animate[
If[¬zobraz3d,
main=Graphics[{White,
Rectangle[{-2*vel,vel},{2*vel,-vel}],
Red,
Disk[{0,0} ,r],
Black,
Circle[{v*t,0},c*t+r],
Circle[{v*1/c+v*t,0},c*t+1+r],
Circle[{v*2/c+v*t,0},c*t+2+r],
Circle[{v*3/c+v*t,0},c*t+3+r],
Opacity[1-t*c],
Circle[{v*4/c+v*t,0},c*t+4+r]}];
vector=Graphics[{
barvavektoru,
Thick,
Arrow[{{0,0},{-5*v/c,0}}]
}];
vectorModified= Graphics[{
barvavektoru,
Thick,
Arrow[{{0,0},{If[v>0,-5*4.5*10^7/c,5*4.5*10^7/c],0}}]
}];
picture=If[Abs[v]>0∧zobrazvektor,
Show[main,
If[Abs[v]>4.5*10^7,
vector,
vectorModified]],
main],
main=Graphics3D[{
Red,
Sphere[{0,0,0} ,r],
Orange,
Opacity[.5-t*c/10],
Sphere[{v*t,0,0},c*t+r],
Opacity[.4-t*c/10],
Sphere[{v*1/c+v*t,0,0},c*t+1+r],
Opacity[.3-t*c/10],
Sphere[{v*2/c+v*t,0,0},c*t+2+r],
Opacity[.2-t*c/10],
Sphere[{v*3/c+v*t,0,0},c*t+3+r],
Opacity[.1-t*c/10],
Sphere[{v*4/c+v*t,0,0},c*t+4+r]},
PlotRange->{{-vel,vel},{-pribliz,vel},{-vel,vel}}];
h1=3*r;
h2=r;
x=1.5*10^7;
If[Abs[v]>x,posunsipky=-3*v/c,posunsipky=-3*If[v>0,x,-x]/c];
If[v>0,orientace=-u+posunsipky,orientace=u+posunsipky];
VnejsiCastSipky=ParametricPlot3D[{orientace,(h1-u)/h1*r*Cos[θ],(h1-u)/h1*r*Sin[θ]},{u,0,h1},{θ,0,2π},
Axes->None,Mesh->None,
PlotStyle->{barvavektoru,Specularity[White,50]}];
VnitrniCastSipky=ParametricPlot3D[{orientace,(h2-u)/h2*r*Cos[θ],(h2-u)/h2*r*Sin[θ]},{u,0,h2},{θ,0,2π},
Axes->None,Mesh->None,
PlotStyle->{barvavektoru,Specularity[White,50]}];
TeloSipky=Graphics3D[{barvavektoru,Specularity[White,50],Cylinder[{{If[v>0,-r,r]+posunsipky,0,0},{0,0,0}},r/2]}];
picture=If[Abs[v]>0∧zobrazvektor,Show[main,VnejsiCastSipky,VnitrniCastSipky,TeloSipky],Show[main]]],
{t,0,1/c},ControlPlacement->Top],
{{v,0,Style["v",14,Blue,FontFamily->Times, Italic]},-0.999*c,0.999*c,500000},
{{pribliz,vel,Style["Zoom 3D",12,Darker[Green,0.6],FontFamily->Times]},vel,0,0.1},
Delimiter,
{{zobraz3d,False,"Zobraz 3D"},{True,False},ControlType->Checkbox},
{{zobrazvektor,False,"Zobraz vektor"},{True,False},ControlType->Checkbox},
Delimiter,
Button["Uložit obrázek",{saved=saved+1,Export[StringInsert[StringJoin[path,FileName],ToString[saved],-5],picture]},ImageSize->{200,Automatic}],
ControlPlacement->Top,
FrameLabel->{Style["© Zbyněk Pitra, DMP - Elektromagnetické záření 2008/2009",8,Black,FontFamily->Times],"",Style["Dopplerův jev",22,Black,FontFamily->Times],""}];

Spuštění apletu - Klikněte do následující buňky, stiskněte Shift+Enter a v dotazu, jež se zobrazí stiskněte tlačítko Yes.

Doppler