Goniometrické funkce v pravoúhlém trojúhelníku

Následující aplet umožňuje názorně pochopit definici goniometrických funkcí v pravoúhlém trojúhelníku. Posuvníkem lze měnit zobrazovaný úhel a tím i pravoúhlý trojúhelník, v němž je tento úhel jedním z vnitřních úhlů. Lze přepínat mezi funkcemi sinus, kosinus, tangens a kotangens a u nich pak zobrazit definici, hodnotu dané goniometrické funkce a v trojúhelníku zobrazit příslušné strany, pomocí nichž je funkce definována.

Tlačítkem Ulož obraázek se uloží právě zobrazené "bílé" okno 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í grafu

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

x1=-10;x2=-x1;
y1=-1;y2=20;
koef=1.2;
r=0.2(x2-x1);
rpravyuhel=0.05(x2-x1);

tloustka=0.005;

barva=Black;
barvaalfa=Red;
barvasin=Lighter[Blue,0.2];
barvacos=Lighter[Orange,0.2];
barvatg=Darker[Green,0.2];
barvacotg=Magenta;

GoniometrieTrojuhelnik=Manipulate[
If[zobrazitdefinici,
If[typfunkce=="sinus",
{textdefinice="sin α = \!\(\*FractionBox[\(\(protilehlá\)\(\\ \)\(odvěsna\)\(\\ \)\), \(přepona\)]\)",
barvafunkce=barvasin},
If[typfunkce=="kosinus",
{textdefinice="cos α = \!\(\*FractionBox[\(\(přilehlá\)\(\\ \)\(odvěsna\)\(\\ \)\), \(přepona\)]\)",
barvafunkce=barvacos},
If[typfunkce=="tangens",
{textdefinice="tg α = \!\(\*FractionBox[\(\(protilehlá\)\(\\ \)\(odvěsna\)\(\\ \)\), \(přilehlá\\ odvěsna\)]\)",
barvafunkce=barvatg},
If[typfunkce=="kotangens",
{textdefinice="cotg α = \!\(\*FractionBox[\(\(přilehlá\)\(\\ \)\(odvěsna\)\(\\ \)\), \(protilehlá\\ odvěsna\)]\)",
barvafunkce=barvacotg},
textdefinice=""]]]],
textdefinice=""];
If[zobrazithodnoty,
If[typfunkce=="sinus",
{texthodnoty=StringJoin["sin ",ToString[alfa ],"° = ",ToString[Round[Sin[alfa Degree],0.0001]]],
barvafunkce=barvasin},
If[typfunkce=="kosinus",
{texthodnoty=StringJoin["cos ",ToString[alfa ],"° = ",ToString[Round[Cos[alfa Degree],0.0001]]],,
barvafunkce=barvacos},
If[typfunkce=="tangens",
{texthodnoty=StringJoin["tg ",ToString[alfa ],"° = ",ToString[Round[Tan[alfa Degree],0.0001]]],
barvafunkce=barvatg},
If[typfunkce=="kotangens",
{texthodnoty=StringJoin["cotg ",ToString[alfa ],"° = ",ToString[Round[Cot[alfa Degree],0.0001]]],
barvafunkce=barvacotg},
texthodnoty=""]]]],
texthodnoty=""];

useckaAC=Line[{{x1,y1},{x2,y1}}];
uhel=Circle[{x1,y1},r,{0,alfa Degree}];
pravyuhel1=Circle[{x2,y1},rpravyuhel,{(π/2),π}];
pravyuhel2=Point[{0.6rpravyuhel Cos[((3π)/4)]+x2,0.6rpravyuhel Sin[((3π)/4)]+y1}];
yB=Tan[alfa Degree]*x+y1-Tan[alfa Degree]*x1/.x->x2;
useckaAB=Line[{{x1,y1},{x2,yB}}];
useckaBC=Line[{{x2,y1},{x2,yB}}];

grafik=Deploy[Show[
Graphics[{
{barva,Thickness[tloustka],useckaAC},
{barva,Thickness[tloustka],useckaAB},
{barva,Thickness[tloustka],useckaBC},
{barvaalfa,Thickness[0.2tloustka],uhel},
{barva,Thickness[0.2tloustka],pravyuhel1},
{barva,PointSize[2tloustka],pravyuhel2},
Text[Style["α",30,barvaalfa,FontFamily->Times],{0.6r Cos[((alfa Degree)/2)]+x1,0.6r Sin[((alfa Degree)/2)]+y1},{Center,Center}],
Text[Style["A",20,barva,FontFamily->Times],{0.9koef x1,y1},{Center,Center}],
Text[Style["B",20,barva,FontFamily->Times],{0.9koef x2,yB},{Center,Center}],
Text[Style["C",20,barva,FontFamily->Times],{0.9koef x2,y1},{Center,Center}],
If[vyznacitdefinici,
If[typfunkce=="sinus",
{{barvasin,Thickness[1.4tloustka],useckaAB},
{barvasin,Thickness[1.4tloustka],useckaBC}},
If[typfunkce=="kosinus",
{{barvacos,Thickness[1.4tloustka],useckaAB},
{barvacos,Thickness[1.4tloustka],useckaAC}},
If[typfunkce=="tangens",
{{barvatg,Thickness[1.4tloustka],useckaAC},
{barvatg,Thickness[1.4tloustka],useckaBC}},
If[typfunkce=="kotangens",
{{barvacotg,Thickness[1.4tloustka],useckaAC},
{barvacotg,Thickness[1.4tloustka],useckaBC}},
Text[""]]]]],
Text[""]]
}],
FormatType->StandardForm,
Axes->False,AxesOrigin->{x1,y1},PlotRange->{{koef x1,koef x2},{2koef y1,koef y2}},ImageSize->450
]],

{{alfa,30,Style["α",25,barvaalfa,FontFamily->Times]},1,89,1},
Delimiter,
{{typfunkce,"sinus",Style["funkce",15,barva,FontFamily->Times]},{"sinus","kosinus","tangens","kotangens"}},
Delimiter,
{{zobrazitdefinici,True,Style["zobrazit definici",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{vyznacitdefinici,True,Style["vyznačit definici",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazithodnoty,True,Style["zobrazit hodnoty",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
Dynamic[
Grid[{
{Item[Style[textdefinice,20,barvafunkce,FontFamily->Times],Alignment->Left]},
{Item[Style[texthodnoty,20,barvafunkce,FontFamily->Times],Alignment->Left]}}]],
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["Goniometrické funkce v pravoúhlém trojúhelníku",25,Black,FontFamily->Times],""}];

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

GoniometrieTrojuhelnik