({{Číslo projektu, CZ.1.07/1.1.36/02.0066}, {Autor, Karel Johanovský}, {Téma, Dynamické ukázky}, {Metodický pokyn, výkladový text pro učitele inovátory}})

Dynamické modely

Dynymické ukázky a modely se zpravdla vytváří pomocí příkazu Manipulate, Zde ukážeme několik aplikací a parametrů příkazu. Lze používat různá ovládací tlačítka a manipulátory.

Manipulate

f[x_]=(x-4)(x-1)(x-2)+6;
Manipulate[body=Table[{1+nn*(3/(ccc)),f[1+nn*(3/(ccc))]},{nn,0,ccc}];
lich=Table[Polygon[{{1+nn*(3/ccc),0},{1+nn*(3/ccc),f[1+nn*(3/ccc)]},{1+(nn+1)*(3/ccc),f[1+(nn+1)*(3/ccc)]},{1+(nn+1)*(3/ccc),0}}],{nn,0,ccc-1}];
gr=Graphics[{EdgeForm[Black],Red,lich}];
Column[{Show[Plot[f[x],{x,2/3,4+1/4},AxesOrigin->{1/2,0}],Plot[f[x],{x,1,4},Filling->{1->{0,Lighter[Red,.7]}}],gr,ListPlot[body,PlotStyle->PointSize[.01]],Plot[f[x],{x,0,5}],ImageSize->Large],Map[Area,lich]//Total//N},Center],{{ccc,20},2,50,1},SaveDefinitions->True]

Manipulate[ma=Table["",{10}];PrependTo[ma,"max"];mi=Table["",{10}];PrependTo[mi,"min"];pole={6,2,1,3,9,0,1,9,4,6};maxi=1;mini=1;

For[i=2,i≤p,i=i+1,If[pole[[i]]>pole[[maxi]],maxi=i]];ma[[maxi+1]]="H";
For[j=2,j≤p,j=j+1,If[pole[[j]]<pole[[mini]],mini=j]];mi[[mini+1]]="L";

Grid[{Prepend[Range[10],"index"],{"data",Item[6,If[p==1,Background -> Green,Background -> White]],Item[2,If[p==2,Background -> Red,Background -> White]],Item[1,If[p==3,Background -> Red,Background -> White]],Item[3,If[p==4,Background -> Red,Background -> White]],Item[9,If[p==5,Background -> Red,Background -> White]],Item[0,If[p==6,Background -> Red,Background -> White]],Item[1,If[p==7,Background -> Red,Background -> White]],Item[9,If[p==8,Background -> Red,Background -> White]],Item[4,If[p==9,Background -> Red,Background -> White]],Item[6,If[p==10,Background -> Red,Background -> White]]},ma,mi}, Frame -> All],{p,1,10,1}]

data={{"NaOH","hydroxid sodný"},{"KOH","hydroxid draselný"},{"Ca(OH)2","hydroxid vápenatý"},{"Fe(OH)2","hydroxid železnatý"},{"Fe(OH)3","hydroxid železitý"},{"Al(OH)3","hydroxid hlinitý"}};fulldata=Partition[MapThread[Append,{data,Outer[ChemicalData,(#[[1]])&/@data,{"MolecularFormulaDisplay","CHColorStructureDiagram"}]}]//Flatten,4];Manipulate[fulldata[[a,3+b]],{{a,1,"hydroxid"},Table[p->fulldata[[p,2]],{p,1,fulldata//Length,1}],ControlType->PopupMenu},{{b,0,"vzorec"},{0->"molekulový",1->"strukturní"}},SaveDefinitions->True]

Manipulate[If[stopa,pts=Union[pts,{{((-b)/4),1-((b^2)/8)}}],pts={}];Plot[2(x^2)+b x+1,{x,-5,5},PlotRange->{-10,10},Epilog->{If[vrch,{PointSize[Large],Red,Point[{((-b)/4),1-((b^2)/8)}]}],If[stopa,{PointSize[Medium],Black,Point[pts]}]}],{{b,0,"koef b"},-10,10},{{vrch,False,"Vrchol"},{False,True}},{{stopa,False,"Stopa"},{False,True}},SaveDefinitions->True]

WWW odkazy

http://demonstrations.wolfram.com/
MouseOver

Metodický pokyn

Manipulate je velmi užitečný a výkonný příkaz pro výrobu interaktivních ukázek a modelů. Zde je popsán jen stručně, rozhodně doporučuji pečlivě a dohloubky prostudovat. Dobrou inspirací je projekt Wolfram Demonstrations.