{{ tocSubheader }}
| {{ 'ml-lesson-number-slides' | message : article.intro.bblockCount }} |
| {{ 'ml-lesson-number-exercises' | message : article.intro.exerciseCount }} |
| {{ 'ml-lesson-time-estimation' | message }} |
Appe (Diskussion | bidrag) m (Textersättning - "fillcolor" till "fillColor") | Appe (Diskussion | bidrag) (Redigerar graf tangent_illustration_1 via JXMagician.) | ||
Rad 21: | Rad 21: | ||
<jsxgpre id="tangent_illustration_1"> | <jsxgpre id="tangent_illustration_1"> | ||
− | var b=mlg.board([-4.5,5.5,4.5,-1.5], {desktopSize:'medium'}); | + | var b=mlg.board([-4.5,5.5,4.5,-1.5], {desktopSize:'medium'}); |
− | var xax = b.xaxis(200,0,'x'); | + | var xax = b.xaxis(200,0,'x'); |
− | var yax = b.yaxis(200,0,'y'); | + | var yax = b.yaxis(200,0,'y'); |
− | var string = { | + | var string = { |
− | + | move_me: '<!--T:12--> Drag mig!' | |
− | }; | + | }; |
− | /* b.board.options.layer['angle'] = 8; */ | + | /* b.board.options.layer['angle'] = 8; */ |
− | /* Vilken funktion som ska visas lagras i x-koordinaten */ | + | /* Vilken funktion som ska visas lagras i x-koordinaten */ |
− | var whichFunction = b.node(1,20); | + | var whichFunction = b.node(1,20); |
− | /* Definiera funktionen */ | + | /* Definiera funktionen */ |
− | var f1 = b.board.create('functiongraph', [function(x) { | + | var f1 = b.board.create('functiongraph', [function(x) { |
− | + | if (whichFunction.X() === 0) { | |
− | + | return Math.sin(x); | |
− | + | } | |
− | + | else if (whichFunction.X() === 1) { | |
− | + | return 0.65*x*x; | |
− | + | } | |
− | + | else { | |
− | + | return Math.pow(2,x); | |
− | + | } | |
− | }, -5, 5], {strokeWidth:2, strokeColor:'blue'}); | + | }, -5, 5], {strokeWidth:2, strokeColor:'blue'}); |
− | /* Drag mig! för funktionerna */ | + | /* Drag mig! för funktionerna */ |
− | var dragMe2 = b.textA(1.9,0.6, string.move_me); | + | var dragMe2 = b.textA(1.9,0.6, string.move_me); |
− | var dragMeE = b.textA(1.3,1.1, string.move_me,{opacity:0, transitionDuration:0}); | + | var dragMeE = b.textA(1.3,1.1, string.move_me,{opacity:0, transitionDuration:0}); |
− | var dragMeS = b.textA(0.75,-0.35, string.move_me,{opacity:0, transitionDuration:0}); | + | var dragMeS = b.textA(0.75,-0.35, string.move_me,{opacity:0, transitionDuration:0}); |
− | /* b.hide([dragMeE, dragMeS]); */ | + | /* b.hide([dragMeE, dragMeS]); */ |
− | /* Skapa en tangentpunkt och tangenten */ | + | /* Skapa en tangentpunkt och tangenten */ |
− | var tangentPoint = b.glider(1, 1, f1, {fixed:false}); | + | var tangentPoint = b.glider(1, 1, f1, {fixed:false}); |
− | var tangent1 = b.board.create(' | + | var tangent1 = b.board.create('tangent', [tangentPoint], {strokeColor:'red'}); |
− | /* Funktionsbeskrivningar */ | + | /* Funktionsbeskrivningar */ |
− | var lf1 = b.func('-0.75', 'blue', {xMin:-3, xMax:-3, opacity:0}); | + | var lf1 = b.func('-0.75', 'blue', {xMin:-3, xMax:-3, opacity:0}); |
− | var polyLegend = b.legend(lf1, -3,'y=x^2'); | + | var polyLegend = b.legend(lf1, -3,'y=x^2'); |
− | var lf2 = b.func('2.5', 'blue', {visible:false}); | + | var lf2 = b.func('2.5', 'blue', {visible:false}); |
− | var sinLegend = b.legend(lf2, -2.25,'y=\\sin(x)',{opacity:0, transitionDuration:0}); | + | var sinLegend = b.legend(lf2, -2.25,'y=\\sin(x)',{opacity:0, transitionDuration:0}); |
− | var lf3 = b.func('4.5', 'blue', {visible:false}); | + | var lf3 = b.func('4.5', 'blue', {visible:false}); |
− | var expLegend = b.legend(lf3, -2.25,'y=2^x',{opacity:0, transitionDuration:0}); | + | var expLegend = b.legend(lf3, -2.25,'y=2^x',{opacity:0, transitionDuration:0}); |
− | /* b.hide([sinLegend, expLegend]); */ | + | /* b.hide([sinLegend, expLegend]); */ |
− | /* Skapa cirkel långt borta från resten av plottarna */ | + | /* Skapa cirkel långt borta från resten av plottarna */ |
− | var circleNode1 = b.node(20, 20); | + | var circleNode1 = b.node(20, 20); |
− | var circleNode2 = b.node(22.5, 20); | + | var circleNode2 = b.node(22.5, 20); |
− | var tCircle = b.circle(circleNode1, circleNode2, {strokeWidth:2}); | + | var tCircle = b.circle(circleNode1, circleNode2, {strokeWidth:2}); |
− | /* Med en tangeringspunkt och tangent, samt radie med rät vinkel */ | + | /* Med en tangeringspunkt och tangent, samt radie med rät vinkel */ |
− | var circleTangentPoint = b.glider(24,16, tCircle, {fixed:false}); | + | var circleTangentPoint = b.glider(24,16, tCircle, {fixed:false}); |
− | var circleRadius = b.segment(circleTangentPoint, circleNode1, {layer:8}); | + | var circleRadius = b.segment(circleTangentPoint, circleNode1, {layer:8}); |
− | var helpPoint = b.Tpoint(circleRadius, circleTangentPoint, 1); | + | var helpPoint = b.Tpoint(circleRadius, circleTangentPoint, 1); |
− | b.hide(helpPoint); | + | b.hide(helpPoint); |
− | var circleAngle = b.angle(circleNode1, circleTangentPoint, helpPoint, {radius:0.4, orthoType:'square', layer:7, fillOpacity:1.0, strokeColor:'#666666', fillColor:'#B2B2B2'}); | + | var circleAngle = b.angle(circleNode1, circleTangentPoint, helpPoint, {radius:0.4, orthoType:'square', layer:7, fillOpacity:1.0, strokeColor:'#666666', fillColor:'#B2B2B2'}); |
− | var tangent2 = b.board.create('tangent', [circleTangentPoint], {strokeColor:'red'}); | + | var tangent2 = b.board.create('tangent', [circleTangentPoint], {strokeColor:'red'}); |
− | b.circle(circleNode1, b.node(20.04,20.04), {strokeColor:'black', fillColor:mlg.tikzColor('black!60'), strokeWidth:1, layer:9,opacity:0, transitionDuration:0}); | + | b.circle(circleNode1, b.node(20.04,20.04), {strokeColor:'black', fillColor:mlg.tikzColor('black!60'), strokeWidth:1, layer:9,opacity:0, transitionDuration:0}); |
− | /* Dra mig! för cirkeln */ | + | /* Dra mig! för cirkeln */ |
− | var dragMeC = b. | + | var dragMeC = b.text(22.2,17.8, string.move_me,{mathMode:false}); |
− | /* Förbered för visning */ | + | /* Förbered för visning */ |
− | /* b.hide(tangent2); */ | + | /* b.hide(tangent2); */ |
− | /* Sätt gränser för var punkten får vara */ | + | /* Sätt gränser för var punkten får vara */ |
− | tangentPoint.on('drag', function () { | + | tangentPoint.on('drag', function () { |
− | + | b.hide([dragMeE, dragMe2, dragMeS],0); | |
− | + | if (tangentPoint.X() > 4.2) { | |
− | + | tangentPoint.moveTo([4.2, tangentPoint.Y()]); | |
− | + | } | |
− | + | else if (tangentPoint.X() < -4.2) { | |
− | + | tangentPoint.moveTo([-4.2, tangentPoint.Y()]); | |
− | + | } | |
− | + | else if (tangentPoint.Y() > 7.2) { | |
− | + | tangentPoint.moveTo([tangentPoint.X(), 7.2]); | |
− | + | } | |
− | }); | + | }); |
− | circleTangentPoint.on(' | + | circleTangentPoint.on('down', function () { |
− | + | b.hide(dragMeC,0); | |
− | }); | + | }); |
− | /* Inställningar för de olika graferna */ | + | /* Inställningar för de olika graferna */ |
− | /* Sinuskurva */ | + | /* Sinuskurva */ |
− | mlg.af("tangent_illustration_1.sinus", function(){ | + | mlg.af("tangent_illustration_1.sinus", function(){ |
− | + | b.hide([dragMeE, dragMeC, dragMe2, expLegend, polyLegend, tangent2],1); | |
− | + | setTimeout(function(){ | |
− | + | b.show([dragMeS, sinLegend, tangent1],1); | |
− | + | whichFunction.moveTo([0,-20]); | |
− | + | b.board.setBoundingBox([-4.5,3.5,4.5,-3.5]); | |
− | + | tangentPoint.moveTo([0,0]); | |
− | + | },20); | |
− | }); | + | }); |
− | /* Andragradsfunktion */ | + | /* Andragradsfunktion */ |
− | mlg.af("tangent_illustration_1.seconddeg", function(){ | + | mlg.af("tangent_illustration_1.seconddeg", function(){ |
− | + | b.hide([dragMeE, dragMeS, dragMeC, expLegend, sinLegend, tangent2],1); | |
− | + | setTimeout(function(){ | |
− | + | b.show([dragMe2, polyLegend, tangent1],1); | |
− | + | whichFunction.moveTo([1,-20]); | |
− | + | b.board.setBoundingBox([-4.5,5.5,4.5,-1.5]); | |
− | + | tangentPoint.moveTo([1,1]); | |
− | + | },20); | |
− | }); | + | }); |
− | /* Exponentialfunktion */ | + | /* Exponentialfunktion */ |
− | mlg.af("tangent_illustration_1.exponential", function(){ | + | mlg.af("tangent_illustration_1.exponential", function(){ |
− | + | b.hide([dragMeC, dragMeS, dragMe2, polyLegend, sinLegend, tangent2],1); | |
− | + | setTimeout(function(){ | |
− | + | b.show([dragMeE, expLegend, tangent1],1); | |
− | + | whichFunction.moveTo([2,-20]); | |
− | + | b.board.setBoundingBox([-4.5,5.5,4.5,-1.5]); | |
− | + | tangentPoint.moveTo([1,1]); | |
− | + | },20); | |
− | }); | + | }); |
− | /* Cirkel */ | + | /* Cirkel */ |
− | mlg.af("tangent_illustration_1.circle", function(){ | + | mlg.af("tangent_illustration_1.circle", function(){ |
− | + | b.hide([dragMeE, dragMeS, dragMe2, tangent1],1); | |
− | + | b.show([dragMeC, tangent2],1); | |
− | + | b.board.setBoundingBox([16,23,24,17]); | |
− | + | circleTangentPoint.moveTo([24,16]); | |
− | }); | + | }); |
</jsxgpre> | </jsxgpre> |
Man kan därför använda tangenter för att illustrera en kurvas lutning i en viss punkt på grafen.
Lägg märke till att en tangent till en cirkel skapar en rät vinkel med cirkelns radie.