{{ tocSubheader }}
| {{ 'ml-lesson-number-slides' | message : article.intro.bblockCount}} |
| {{ 'ml-lesson-number-exercises' | message : article.intro.exerciseCount}} |
| {{ 'ml-lesson-time-estimation' | message }} |
Jrhoads (Diskussion | bidrag) (Den här versionen är märkt för översättning) | Appe (Diskussion | bidrag) | ||
Rad 33: | Rad 33: | ||
<jsxgpre id="jsxCosinus456" class="jxgbox jsx-canvas"> | <jsxgpre id="jsxCosinus456" class="jxgbox jsx-canvas"> | ||
+ | var b = mlg.board([-1,5,5,-3],{grid:false}); | ||
+ | var origo = b.node(0,0); | ||
+ | var p1 = b.point(5,0,{fixed:false}); | ||
+ | var p2 = b.point(5,4.2,{fixed:false}); | ||
+ | var pol = b.polygon([origo,p1,p2]); | ||
+ | var angle = b.polygonAngle(pol,1,{radius:0.8}); | ||
+ | var angleLabel = b.angleLabel(angle); | ||
+ | var angle2 = b.polygonAngle(pol,2,{radius:0.5,orthoType:'square'}); | ||
+ | var t1 = b.segmentText(pol.borders[0],{distance:-0.4}); | ||
+ | var t2 = b.segmentText(pol.borders[2],{distance:-0.3}); | ||
+ | var dra1 = b.txt(0,-0.4,'<translate><!--T:7--> | ||
+ | dra mig</translate>',{anchor:p1,fontsize:1,mathMode:false}); | ||
+ | var dra2 = b.txt(0,0.3,'<translate><!--T:8--> | ||
+ | dra mig</translate>',{anchor:p2,fontsize:1,mathMode:false}); | ||
− | var | + | var angleValue = angle.Value(); |
− | var | + | var calc = b.text(3,-1.25,'\\text{cos}('+(angleValue / (2*Math.PI/360)).toFixed(0)+')=\\dfrac'+'{'+pol.borders[0].L().toFixed(1)+'}'+'{'+pol.borders[2].L().toFixed(1)+'}'+'='+Math.cos(angleValue).toFixed(2),{flag:true}); |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | var | + | var hideShow = function(){ |
− | + | if(p1.X()<=0.01 || p2.X()<=0.01){ | |
− | + | b.hide([t1.text,t2.text,angleLabel]); | |
− | + | } | |
− | + | else if(p2.Y()<=0.51){ | |
− | + | b.hide([t1.text,t2.text,angleLabel]); | |
+ | }else{ | ||
+ | b.show([t1.text,t2.text,angleLabel]); | ||
+ | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | if(p1.X()<= | + | if(p1.X()<=1.5){ |
− | + | b.hide([angle,angle2,angleLabel]); | |
− | + | }else{ | |
− | }else{ | + | b.show([angle,angle2,angleLabel]); |
− | + | } | |
− | |||
− | } | ||
− | if( | + | if(p2.Y()<=1.5){ |
− | + | b.hide([angle,angle2,angleLabel]); | |
− | } | + | } |
− | + | }; | |
− | |||
− | + | p1.on('drag',function(){ | |
− | + | if(p1.X()<=0.01){ | |
− | + | p1.setPositionDirectly(JXG.COORDS_BY_USER,[0.01,p1.Y()]); | |
− | + | } | |
− | + | if(p1.Y()>0.1 || p1.Y()<0.1){ | |
− | p1.on('drag',function(){ | + | p1.setPositionDirectly(JXG.COORDS_BY_USER,[p1.X(),0]); |
− | if(p1.X()<=0.01){ | + | } |
− | + | p2.setPositionDirectly(JXG.COORDS_BY_USER,[p1.X(),p2.Y()]); | |
− | } | + | angleValue = angle.Value(); |
− | if(p1.Y()>0.1 || p1.Y()<0.1){ | + | angleValueStr = (angleValue / (2*Math.PI/360)).toFixed(0); |
− | + | b.changeText(calc,'\\text{cos}('+angleValueStr+')=\\dfrac'+'{'+pol.borders[0].L().toFixed(1)+'}'+'{'+pol.borders[2].L().toFixed(1)+'}'+'='+Math.cos(angleValue).toFixed(2)); | |
− | } | + | hideShow(); |
− | p2.setPositionDirectly(JXG.COORDS_BY_USER,[p1.X(),p2.Y()]); | + | }); |
− | angleValue = angle.Value(); | + | p2.on('drag',function(){ |
− | angleValueStr = (angleValue / (2*Math.PI/360)).toFixed(0); | + | if(p2.X()<=0){ |
− | + | p2.setPositionDirectly(JXG.COORDS_BY_USER,[0,p2.Y()]); | |
− | + | } | |
− | + | if(p2.X()>=5.8){ | |
− | }); | + | p2.setPositionDirectly(JXG.COORDS_BY_USER,[5.8,p2.Y()]); |
− | p2.on('drag',function(){ | + | } |
− | if(p2.X()<=0){ | + | if(p2.Y()<=0.01){ |
− | + | p2.setPositionDirectly(JXG.COORDS_BY_USER,[p2.X(),0.01]); | |
− | } | + | } |
− | if(p2.X()>=5.8){ | + | if(p2.Y()>=5.3){ |
− | + | p2.setPositionDirectly(JXG.COORDS_BY_USER,[p2.X(),5.3]); | |
− | } | + | } |
− | if(p2.Y()<=0.01){ | + | p1.setPositionDirectly(JXG.COORDS_BY_USER,[p2.X(),p1.Y()]); |
− | + | angleValue = angle.Value(); | |
− | } | + | angleValueStr = (angleValue / (2*Math.PI/360)).toFixed(0); |
− | if(p2.Y()>=5.3){ | + | b.changeText(calc,'\\text{cos}('+angleValueStr+')=\\dfrac'+'{'+pol.borders[0].L().toFixed(1)+'}'+'{'+pol.borders[2].L().toFixed(1)+'}'+'='+Math.cos(angleValue).toFixed(2)); |
− | + | hideShow(); | |
− | } | + | }); |
− | p1.setPositionDirectly(JXG.COORDS_BY_USER,[p2.X(),p1.Y()]); | + | p1.on('down',function(){ |
− | angleValue = angle.Value(); | + | b.hide([dra1,dra2]); |
− | angleValueStr = (angleValue / (2*Math.PI/360)).toFixed(0); | + | }); |
− | + | p2.on('down',function(){ | |
− | + | b.hide([dra1,dra2]); | |
− | + | }); | |
− | }); | + | p1.on('up',function(){ |
− | p1.on('down',function(){ | + | b.show([dra1,dra2]); |
− | + | }); | |
− | }); | + | p2.on('up',function(){ |
− | p2.on('down',function(){ | + | b.show([dra1,dra2]); |
− | + | }); | |
− | }); | ||
− | p1.on('up',function(){ | ||
− | |||
− | }); | ||
− | p2.on('up',function(){ | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
+ | b.node(-1,-1.5); | ||
+ | b.node(4,5); | ||
+ | b.cropB(0.5); | ||
</jsxgpre> | </jsxgpre> | ||
cos(v)=HypotenusaNa¨rliggande katet
Förhållandet är alltid samma för en viss vinkel. Om den närliggande kateten t.ex. är hälften så lång som hypotenusan är förhållandet cos(v)=21. Det blir samma kvot eftersom trianglarna som spänns upp av vinkeln är likformiga. Cosinusvärdet säger alltså ingenting om de individuella sidlängderna, utan endast förhållandet mellan dem. Men om man exempelvis vet längden på den närliggande kateten kan man beräkna hypotenusan, och om man vet cosinusvärdet av en vinkel kan man använda arccos för att beräkna vinkeln.