Vektor a jeho vlastnosti

Následující aplet umožňuje lépe pochopit pojem vektor a umístění vektoru.
Tažením myši (při stisknutém levém tlačítku myši) lze měnit počáteční i koncový bod "modrého" vektoru.
Pomocí posuvníku počet vektorů lze zobrazit až 50 dalších náhodně vybraných umístěních daného vektoru.
Volitelně lze dále zobrazit:
	osy kartézského systému souřadnic;
	vektor v nule - tj. umístění zvoleného vektoru do počátku kartézské soustavy souřadnic;
	souřadnice vykresleného vektoru, vektoru opačného a vektorů kolmých k danému vektoru (jsou-li tyto vektory zobrazeny);
	vektor opačný k danému vektoru;
	vektory kolmé k danému vektoru;
	vektor jednotkový.

Jméno vektoru se volí náhodně při každém spuštění apletu. Pokud uživatel požaduje nastavit "svoje" jméno vektoru, lze to udělat změnou hodnoty proměnné nazevvektoru.

Tlačítkem Ulož obrá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, 2009

Příprava pro vykreslení grafu

ClearAll["Global`*"];
jmenosouboru="anal_vektor_.jpg";
cesta=NotebookDirectory[];
pocetulozeni=0;

nazevvektoru=FromCharacterCode[ToCharacterCode["a"]+RandomInteger[{1,26}]-1];
x1=-10;x2=-x1;
y1=-10;y2=-y1;

n0=0;nmin=0;nmax=50;deltan=1;

tloustka=0.005;
velikostbodu=0.015;
velikostsipky=0.035;

barva=Black;
barvavektoru=Blue;
barvaumisteni=Orange;
barvavektoruvnule=Red;
barvasouradnic=Darker[Green,0.4];
barvaopacnehovektoru=Magenta;
barvakolmehovektoru=Darker[Brown,0.4];
barvajednotkovehovektoru=RGBColor[0.72,0.2,1];

osax={
Arrowheads[{0,0.8velikostsipky}],
Arrow[{{x1,0.5(y1+y2)},{x2,0.5(y1+y2)}}]};
osay={
Arrowheads[{0,0.8velikostsipky}],
Arrow[{{0.5(x1+x2),y1},{0.5(x1+x2),y2}}]};
umisteni=RandomReal[{0.8x1,0.8x2},{2,2}];

ZobrazeniVektoru=Manipulate[Deploy[
vektor=PadRight[vektor,2,RandomReal[{x1,x2},{2,2}]];
vektorprokresleni={
Arrowheads[{0,velikostsipky}],
Arrow[{{vektor[[1,1]],vektor[[1,2]]},{vektor[[2,1]],vektor[[2,2]]}}]};
umisteni=PadRight[umisteni,n+1,RandomReal[{0.8x1,0.8x2},{n+1,2}]];
umisteniprokresleni={
Arrowheads[{0,velikostsipky}],
Table[
Arrow[{{umisteni[[i,1]],umisteni[[i,2]]},{umisteni[[i,1]]+(vektor[[2,1]]-vektor[[1,1]]),umisteni[[i,2]]+(vektor[[2,2]]-vektor[[1,2]])}}],
{i,1,n,1}]};
vektorvnule={
Arrowheads[{0,velikostsipky}],
Arrow[{{0,0},{vektor[[2,1]]-vektor[[1,1]],vektor[[2,2]]-vektor[[1,2]]}}]};
vektoropacny={
Arrowheads[{0,velikostsipky}],
Arrow[{{0,0},{-(vektor[[2,1]]-vektor[[1,1]]),-(vektor[[2,2]]-vektor[[1,2]])}}]};
vektorkolmy={
Arrowheads[{0,velikostsipky}],
{Arrow[{{0,0},{-(vektor[[2,2]]-vektor[[1,2]]),vektor[[2,1]]-vektor[[1,1]]}}],
Arrow[{{0,0},{vektor[[2,2]]-vektor[[1,2]],-(vektor[[2,1]]-vektor[[1,1]])}}]}};
vektorjednotkovy={
Arrowheads[{0,velikostsipky}],
Arrow[{{0,0},(1/(Sqrt[(((vektor[[2,1]]-vektor[[1,1]]))^2)+(((vektor[[2,2]]-vektor[[1,2]]))^2)])){vektor[[2,1]]-vektor[[1,1]],vektor[[2,2]]-vektor[[1,2]]}}]};

pissouradnice=StringJoin[ToString[Style[Overscript[nazevvektoru,"→"],barvavektoruvnule],StandardForm],ToString[Style[" = (",barva],StandardForm],ToString[Style[ToString[Round[vektor[[2,1]]-vektor[[1,1]],0.01]],barvasouradnic],StandardForm],ToString[Style["; ",barva],StandardForm],ToString[Style[ToString[Round[vektor[[2,2]]-vektor[[1,2]],0.01]],barvasouradnic],StandardForm],ToString[Style[")",barva],StandardForm]];
pissouradniceopacnehovektoru=StringJoin[ToString[Style[StringJoin["-",ToString[Overscript[nazevvektoru,"→"],StandardForm]],barvaopacnehovektoru],StandardForm],ToString[Style[" = (",barva],StandardForm],ToString[Style[ToString[Round[-(vektor[[2,1]]-vektor[[1,1]]),0.01]],barva],StandardForm],ToString[Style["; ",barva],StandardForm],ToString[Style[ToString[Round[-(vektor[[2,2]]-vektor[[1,2]]),0.01]],barva],StandardForm],ToString[Style[")",barva],StandardForm]];
pissouradnicekolmehovektoru1=StringJoin[ToString[Style[Subscript[Overscript[nazevvektoru,"→"],ToString[1,StandardForm]],barvakolmehovektoru],StandardForm],ToString[Style[" = (",barva],StandardForm],ToString[Style[ToString[Round[-(vektor[[2,2]]-vektor[[1,2]]),0.01]],barva],StandardForm],ToString[Style["; ",barva],StandardForm],ToString[Style[ToString[Round[vektor[[2,1]]-vektor[[1,1]],0.01]],barva],StandardForm],ToString[Style[")",barva],StandardForm]];
pissouradnicekolmehovektoru2=StringJoin[ToString[Style[Subscript[Overscript[nazevvektoru,"→"],ToString[2,StandardForm]],barvakolmehovektoru],StandardForm],ToString[Style[" = (",barva],StandardForm],ToString[Style[ToString[Round[vektor[[2,2]]-vektor[[1,2]],0.01]],barva],StandardForm],ToString[Style["; ",barva],StandardForm],ToString[Style[ToString[Round[-(vektor[[2,1]]-vektor[[1,1]]),0.01]],barva],StandardForm],ToString[Style[")",barva],StandardForm]];
pissouradnicejednotkovehovektoru=StringJoin[ToString[Style[Subscript[Overscript[nazevvektoru,"→"],"0"],barvajednotkovehovektoru],StandardForm],ToString[Style[" = (",barva],StandardForm],ToString[Style[ToString[Round[((vektor[[2,1]]-vektor[[1,1]])/(Sqrt[(((vektor[[2,1]]-vektor[[1,1]]))^2)+(((vektor[[2,2]]-vektor[[1,2]]))^2)])),0.01]],barva],StandardForm],ToString[Style["; ",barva],StandardForm],ToString[Style[ToString[Round[((vektor[[2,2]]-vektor[[1,2]])/(Sqrt[(((vektor[[2,1]]-vektor[[1,1]]))^2)+(((vektor[[2,2]]-vektor[[1,2]]))^2)])),0.01]],barva],StandardForm],ToString[Style[")",barva],StandardForm]];

grafik=Show[
Graphics[{
If[zobrazitosy,
{{barva,Thickness[0.7tloustka],osax},
{barva,Thickness[0.7tloustka],osay},
Text[Style["x",15,barva,FontFamily->Times,Italic],{x2,0.5(x1+x2)},{Right,Top}],
Text[Style["y",15,barva,FontFamily->Times,Italic],{0.05x1,y2},{Center,Top}]},
Text[""]],
{barvavektoru,Thickness[tloustka],vektorprokresleni},
{barvaumisteni,Thickness[tloustka],umisteniprokresleni},
If[zobrazitvektorvnule,
{{barvavektoruvnule,Thickness[tloustka],vektorvnule},
Text[Style[Overscript[nazevvektoru,"→"],20,barvavektoruvnule,FontFamily->Times,Italic,Bold],{1.1(vektor[[2,1]]-vektor[[1,1]]),1.1(vektor[[2,2]]-vektor[[1,2]])},{Center,Center}],
If[zobrazitsouradnice&&zobrazitosy,
{{barvasouradnic,Thickness[0.2tloustka],Dashed,Line[{{vektor[[2,1]]-vektor[[1,1]],0.5(y1+y2)},{vektor[[2,1]]-vektor[[1,1]],vektor[[2,2]]-vektor[[1,2]]},{0.5(x1+x2),vektor[[2,2]]-vektor[[1,2]]}}]},
{barvasouradnic,PointSize[velikostbodu],Point[{vektor[[2,1]]-vektor[[1,1]],0.5(y1+y2)}]},
{barvasouradnic,PointSize[velikostbodu],Point[{0.5(x1+x2),vektor[[2,2]]-vektor[[1,2]]}]},
Text[Style[ToString[Round[vektor[[2,1]]-vektor[[1,1]],0.01]],12,barvasouradnic,FontFamily->Times],{vektor[[2,1]]-vektor[[1,1]],0.02y1},{Center,Top}],
Text[Style[ToString[Round[vektor[[2,2]]-vektor[[1,2]],0.01]],12,barvasouradnic,FontFamily->Times],{0.02x1,vektor[[2,2]]-vektor[[1,2]]},{Right,Center}]
},
Text[""]]},
Text[""]],
If[zobrazitopacnyvektor,
{{barvaopacnehovektoru,Thickness[tloustka],vektoropacny},
Text[Style[StringJoin["-",ToString[Overscript[nazevvektoru,"→"],StandardForm]],20,barvaopacnehovektoru,FontFamily->Times,Italic,Bold],{-1.1(vektor[[2,1]]-vektor[[1,1]]),-1.1(vektor[[2,2]]-vektor[[1,2]])},{Center,Center}]},
Text[""]],
If[zobrazitkolmyvektor,
{{barvakolmehovektoru,Thickness[tloustka],vektorkolmy},
Text[Style[Subscript[Overscript[nazevvektoru,"→"],ToString[1,StandardForm]],20,barvakolmehovektoru,FontFamily->Times,Italic,Bold],{-1.1(vektor[[2,2]]-vektor[[1,2]]),1.1(vektor[[2,1]]-vektor[[1,1]])},{Center,Center}],
Text[Style[Subscript[Overscript[nazevvektoru,"→"],ToString[2,StandardForm]],20,barvakolmehovektoru,FontFamily->Times,Italic,Bold],{1.1(vektor[[2,2]]-vektor[[1,2]]),-1.1(vektor[[2,1]]-vektor[[1,1]])},{Center,Center}]},
Text[""]],
If[zobrazitjednotkovyvektor,
{{barvajednotkovehovektoru,Thickness[tloustka],vektorjednotkovy},
Text[Style[Subscript[Overscript[nazevvektoru,"→"],"0"],20,barvajednotkovehovektoru,FontFamily->Times,Italic,Bold],(1/(Sqrt[(((vektor[[2,1]]-vektor[[1,1]]))^2)+(((vektor[[2,2]]-vektor[[1,2]]))^2)])){0.8(vektor[[2,1]]-vektor[[1,1]]),1.8(vektor[[2,2]]-vektor[[1,2]])},{Center,Center}]},
Text[""]]
}],
FormatType->StandardForm,AspectRatio->Automatic,PlotRange->{{x1,x2},{y1,y2}},ImageSize->490
]],

{{vektor,RandomReal[{0.8x1,0.8x2},{2,2}]},Locator,Appearance->""},
{{n,n0,Style["umístění vektoru",15,barva]},nmin,nmax,deltan},
Delimiter,
Item[Style["Zobrazit",20,barva,FontFamily->Times,Bold,Underlined],Alignment->Left],
{{zobrazitosy,True,Style["- osy",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitvektorvnule,True,Style["- vektor v nule",15,barvavektoruvnule,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitsouradnice,False,Style["- souřadnice",15,barvasouradnic,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
{{zobrazitopacnyvektor,False,Style["- opačný vektor",15,barvaopacnehovektoru,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitkolmyvektor,False,Style["- kolmý vektor",15,barvakolmehovektoru,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitjednotkovyvektor,False,Style["- jednotkový vektor",15,barvajednotkovehovektoru,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
Dynamic[
Grid[{
{If[zobrazitsouradnice&&zobrazitosy,
Item[Style[pissouradnice,20,barva,FontFamily->Times],Alignment->Left],
""]},
{If[zobrazitsouradnice&&zobrazitopacnyvektor&&zobrazitosy,
Item[Style[pissouradniceopacnehovektoru,20,barva,FontFamily->Times],Alignment->Left],
""]},
{If[zobrazitsouradnice&&zobrazitkolmyvektor&&zobrazitosy,
Item[Style[pissouradnicekolmehovektoru1,20,barva,FontFamily->Times],Alignment->Left],
""]},
{If[zobrazitsouradnice&&zobrazitkolmyvektor&&zobrazitosy,
Item[Style[pissouradnicekolmehovektoru2,20,barva,FontFamily->Times],Alignment->Left],
""]},
{If[zobrazitsouradnice&&zobrazitjednotkovyvektor&&zobrazitosy,
Item[Style[pissouradnicejednotkovehovektoru,20,barva,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, 2009",10,Black,FontFamily->Times],"",Style["Vektor, umístění vektoru, vektor opačný a vektor kolmý",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.

ZobrazeniVektoru