Zobrazení tíhové síly

Následující aplet umožňuje názorně zobrazit vznik tíhové síly, která působí na těleso v tíhovém poli Země. Pomocí posuvníků lze nastavit libovolnou kombinaci zeměpisné šířky φ, hmotnosti tělesa m a násobku základní oběžné doby (tj. doby 24 hodin) Země kolem své osy. Předdefinované rozsahy koeficientů může uživatel znalý Mathematicy měnit, ale v tomto případě to není doporučené! Tíhová síla závisí na síle gravitační a síle odstředivé. Tyto dvě síly se ale diametrálně liší svojí velikostí, takže jejich rozumné vykreslení do jednoho obrázku je velmi náročné! Velikosti sil vypisované v apletu jsou v pořádku, ale při zobrazování vektorů bylo nutné velikosti sil "upravit" - proto ve zdrojovém kódu velikost zobrazovaných vektorů neodpovídá skutečnosti!
V apletu lze volit další možnosti (popis sil, zobrazování jejich velikostí, ...) tak, aby bylo možné aplet použít plně ve výuce případně při samostudiu.
Tlačítkem Ulož obrázek se uloží právě zobrazená situace do aktuální složky (složka, v níž je uložen tento notebook) pod jménem, které je uloženo v proměnné jmenosouboru. K tomuto jménu souboru je při opakovaném ukládání grafu přidáváno pořadové číslo.
Pozor! Při každém spuštění tohoto apletu se začínají soubory číslovat opět od jedné! Tak může dojít k přepsání minule uložených obrázků.

© Jaroslav Reichl, 2008

Příprava pro vykreslení

jmenosouboru="tihova_sila_.jpg";
cesta=NotebookDirectory[];
pocetulozeni=0;

x1=-10;x2=10;
y1=-10;y2=10;
deltay=3;
deltayvypis=1.2;

barva=Black;
barvafi=Orange;
barvateleso=Gray;
barvagravitace=Red;
barvaodstrediva=Blue;
barvatihova=Green;

sipka=0.042;
tloustka=0.012;
r=5;
mmax=150;
Tmin=0.5;

mzeme=5.98 (10^24);
rzeme=6.378 (10^6);
kappa=6.67 (10^(-11));
ag=((kappa mzeme)/(rzeme^2));

teleso=Disk[{((x1+x2)/2),((y1+y2)/2)},r];

ZobrazeniTihoveSily=Manipulate[
If[fi≤90,
{zemsirka=90-fi,
zemsirkavypis=90-fi,
uhel1=0,
uhel2=zemsirka},
If[fi≤180,
{zemsirka=fi-90,
zemsirkavypis=fi-90,
uhel1=450-fi,
uhel2=360},
If[fi≤270,
{zemsirka=fi-90,
zemsirkavypis=270-fi,
uhel1=180,
uhel2=450-fi},
{zemsirka=450-fi,
zemsirkavypis=fi-270,
uhel1=450-fi,
uhel2=180}]]];

bodx=r*Sin[fi Degree];
body=r*Cos[fi Degree];
fgravx=((r (mmax-m))/mmax)Sin[fi Degree];
fgravy=((r (mmax-m))/mmax)Cos[fi Degree];
fodstrx=3Tmin((4m (π^2) rzeme)/((T^(1/3)) (((24*3600))^2))) Cos[zemsirka Degree];
fodstry=r*Cos[fi Degree];
silagravitacni={
Arrowheads[{0,sipka}],
Arrow[{{bodx,body},{fgravx,fgravy}}]};
silaodstrediva={
Arrowheads[{0,sipka}],
Arrow[{{bodx,body},{fodstrx,fodstry}}]};
silatihova={
Arrowheads[{0,sipka}],
Arrow[{{bodx,body},{fgravx+fodstrx-bodx,fgravy}}]};
rovnobezkatihova=Line[{{fodstrx,fodstry},{fgravx+fodstrx-bodx,fgravy}}];
rovnobezkaodstrediva=Line[{{fgravx,fgravy},{fgravx+fodstrx-bodx,fgravy}}];
spojnicestredu={
Line[{{bodx,body},{0,0}}],
Line[{{-r,0},{r,0}}]};

grafik=Deploy[Show[
Graphics[{

{barvateleso,teleso},
If[popsat,
{{barvafi,Thickness[0.004],Dashed,spojnicestredu},
{barvafi,Thickness[0.004],Dashed,Circle[{0,0},(r/2),{uhel1 Degree,uhel2 Degree}]},
Text[Style["φ",15,barvafi,FontFamily->Times,Bold],{0.4r Cos[((uhel1+uhel2)/2)(π/180)],0.4 r Sin[((uhel1+uhel2)/2)(π/180)]},{Center,Center}],
Text[Style["(Overscript[(Subscript[F, g]), ⟶])",20,barvagravitace,FontFamily->Times,Bold],{-0.2r*Sin[(fi-30) Degree],-0.2r*Cos[(fi-30) Degree]},{Center,Center}],
If[zobrazitfo,
{If[zemsirka≠90,
Text[Style["(Overscript[(Subscript[F, 0]), ⟶])",20,barvaodstrediva,FontFamily->Times,Bold],{1.2fodstrx,1.2fodstry},{Center,Center}],
Text[""]],
Text[Style["(Overscript[(Subscript[F, G]), ⟶])",20,barvatihova,FontFamily->Times,Bold],{bodx+0.07x2,body+0.09y2},{Center,Center}],
Text[Style["(Overscript[(Subscript[F, G]), ⟶]) = (Overscript[(Subscript[F, g]), ⟶]) + (Overscript[(Subscript[F, o]), ⟶])",25,barva,FontFamily->Times,Bold],{((x1+x2)/2),r+0.5 (y2-r)},{Center,Center}]},
Text[""]]},
Text[""]],
If[zobrazitvypocty,
{Text[Style[StringJoin["(Subscript[F, g]) = ",ToString[Round[m ag,0.01]]," N"],20,barvagravitace,FontFamily->Times,Bold],{x1,y1},{Left,Center}],
Text[Style[StringJoin["m = ",ToString[Round[m]]," kg"],20,barvagravitace,FontFamily->Times,Bold],{((x1+x2)/2),y1},{Left,Center}],
Text[Style[StringJoin["T = ",ToString[Round[24T,0.01]]," h"],20,barvaodstrediva,FontFamily->Times,Bold],{((x1+x2)/2),y1-deltayvypis},{Left,Center}],
Text[Style[StringJoin["zeměpisná šířka = ",ToString[Round[zemsirkavypis]],"\!\(\*SuperscriptBox[\(\\ \), \(o\)]\)"],20,barvafi,FontFamily->Times,Bold],{((x1+x2)/2),y1-2deltayvypis},{Left,Center}],
If[zobrazitfo,
{Text[Style[StringJoin["(Subscript[F, 0]) = ",ToString[Round[((4m (π^2) rzeme)/(((T*24*3600))^2))Abs[ Cos[zemsirka Degree]],0.01]]," N"],20,barvaodstrediva,FontFamily->Times,Bold],{x1,y1-deltayvypis},{Left,Center}],
Text[Style[StringJoin["(Subscript[F, G]) = ",ToString[Round[√((((m ag Abs[Sin[zemsirka Degree]]))^2)+((((m ag-((4m (π^2) rzeme)/(((T*24*3600))^2)))Abs[Cos[zemsirka Degree]]))^2)),0.01]]," N"],20,barvatihova,FontFamily->Times,Bold],{x1,y1-2deltayvypis},{Left,Center}]},
Text[""]]},
Text[""]],
{barvagravitace,Thickness[tloustka],silagravitacni},
If[zobrazitfo,
{{barvaodstrediva,Thickness[tloustka],silaodstrediva},
{barvatihova,Thickness[tloustka],silatihova}},
Text[""]],
If[rovnobezniksil&&zobrazitfo&&zemsirkavypis≠0&&zemsirkavypis≠90,
{{barvagravitace,Thickness[0.4tloustka],Dashed,rovnobezkatihova},
{barvaodstrediva,Thickness[0.4tloustka],Dashed,rovnobezkaodstrediva}},
Text[""]]


}],
FormatType->StandardForm,
Axes->False,AxesOrigin->{0,0},PlotRange->{{x1,x2},{y1-deltay,y2}},ImageSize->450
]],
{{fi,60,Style["φ",15,barvafi,FontFamily->Times,Italic]},0,360,1},
{{m,140,Style["m",15,barvagravitace,FontFamily->Times,Italic]},125,mmax,1,Appearance->"Labeled"},
{{T,1,Style["násobek periody",15,barvaodstrediva,FontFamily->Times]},0.9,1.3,0.1,Appearance->"Labeled"},
Delimiter,
{{zobrazitfo,True,Style["zobrazit (Overscript[(Subscript[F, 0]), ⟶])",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{rovnobezniksil,False,Style["zobrazit rovnoběžník sil",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
{{popsat,True,Style["popsat veličiny",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitvypocty,True,Style["zobrazit velikosti sil",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,

Button[" Ulož obrázek ",{pocetulozeni=pocetulozeni+1,Export[StringInsert[StringJoin[cesta,jmenosouboru],ToString[pocetulozeni],-5],grafik]},ImageSize->{100,Automatic}],

ControlPlacement->Left,
FrameLabel->{Style["© Jaroslav Reichl, 2008",10,Black,FontFamily->Times],"",Style["Tíhová síla působící na těleso na Zemi",25,Black,FontFamily->Times],""}];

Spuštění animace
Zpracujte běžným způsobem následující buňku a na dotaz, který se objeví, odpovězte ANO.

ZobrazeniTihoveSily