Synchrotron

Vizualizace oscilátoru

Následující aplet by měl uživateli přiblížit chování oscilátoru uvnitř synchrotronu a jím vyzářených vlnoploch elektromagnetického pole. Jejich počet byl z důvodu přehlednosti apletu zredukován na čtyři. V apletu lze pozorovat změny rychlosti, jíž se budou vzdalovat vlnoplochy od oscilátoru v závislosti na rychlosti částice v synchrotronu.

Tlačítko Uložit obrázek uloží aktuální stav grafů se všemi popisky 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;
FileName="synchrotron_.jpg";
path=NotebookDirectory[];
saved=0;
Synchrotron=
Manipulate[
rosc=.5;
r=10;
ω=v/r;
vel=150;
t=τ/(v/r);
syncho=
ParametricPlot3D[
{(r+Cos[sy])Cos[sx],(r+Cos[sy])Sin[sx],Sin[sy]},{sx,0,2Pi},{sy,0,2Pi},PlotStyle->{Orange,Specularity[White,50],Opacity[.5]},Mesh->None,
Axes->None,PlotRange->{{-2r,2r},{-2r,2r},{-r/2,r/2}}, ImageSize->{5*vel,4*vel}];
picture=Show[
syncho,Graphics3D[
{
If[t>(π/2)/(v/r),φ1=-(π/2)/(v/r),φ1=-t-rosc/c];
If[t>π/(v/r),φ2=-π/(v/r),φ2=-t-rosc/c];
If[t>(3π/2)/(v/r),φ3=-(3π/2)/(v/r),φ3=-t-rosc/c];
Red,Sphere[{r*Cos[ω*t],r*Sin[ω*t],0},.5],
Blue,
Opacity[.5(1- c t/(3 r - rosc))],Sphere[{r,0,0},c*t+rosc],
Opacity[.5(1- c (t+φ1)/(3 r - rosc))],Sphere[{0,r,0},c (t+φ1)+rosc],
Opacity[.5(1- c (t+φ2)/(3 r - rosc))],Sphere[{-r,0,0},c (t+φ2)+rosc],
Opacity[.5(1- c (t+φ3)/(3 r - rosc))],Sphere[{0,-r,0},c (t+φ3)+rosc]},
PlotRange->{{-2r,2r},{-2r,2r},{-r/2,r/2}}]],
 {{v,.1c,Style["v",16,Blue,FontFamily->Times, Italic]},.1c,.99c},
{{τ,0,Style["t",16,Darker[Green,.6],FontFamily->Times, Italic]},0,2 π},
Delimiter,
Button["Uložit obrázek",{saved=saved+1,Export[StringInsert[StringJoin[path,FileName],ToString[saved],-5],picture]},ImageSize->{200,Automatic}],
FrameLabel->{Style["© Zbyněk Pitra, DMP - Elektromagnetické záření 2008/2009",8,Black,FontFamily->Times],"",Style["Synchrotron",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.

Synchrotron