{{ stepNode.name }}
| {{ '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) | Jonas (Diskussion | bidrag) | ||
(5 mellanliggande versioner av samma användare visas inte) | |||
Rad 4: | Rad 4: | ||
Kombineras flera koordinataxlar får man ett koordinatsystem som används för att beskriva positioner. Exempelvis används ett koordinatsystem med latitud och longitud för att beskriva positioner på jorden. Inom matematiken är det ''kartesiska'' koordinatsystemet vanligt. Det består av två axlar, vanligen kallade $x$- och $y$-axel, som är [[Rät vinkel *Wordlist*|vinkelräta]] mot varandra och skär i punkten [[Origo *Wordlist*|origo]]. För varje [[Punkt *Wordlist*|punkt]] i ett koordinatsystem kan man läsa av värdena på axlarna – dessa kallas $x$- och $y$-koordinater och skrivs $(x,y).$</translate> | Kombineras flera koordinataxlar får man ett koordinatsystem som används för att beskriva positioner. Exempelvis används ett koordinatsystem med latitud och longitud för att beskriva positioner på jorden. Inom matematiken är det ''kartesiska'' koordinatsystemet vanligt. Det består av två axlar, vanligen kallade $x$- och $y$-axel, som är [[Rät vinkel *Wordlist*|vinkelräta]] mot varandra och skär i punkten [[Origo *Wordlist*|origo]]. För varje [[Punkt *Wordlist*|punkt]] i ett koordinatsystem kan man läsa av värdena på axlarna – dessa kallas $x$- och $y$-koordinater och skrivs $(x,y).$</translate> | ||
− | <jsxgpre id=" | + | <jsxgpre id="koordinatsystem_animation"> |
− | var b = mlg.board( | + | xMax = 6.5; |
+ | xMin = -6.5; | ||
+ | yMax = 6.5; | ||
+ | yMin = -6.5; | ||
+ | |||
+ | var padding = 0.5; | ||
+ | var border = 0.5; | ||
+ | |||
+ | var b = mlg.board([xMin,yMax,xMax,yMin],{desktopSize:'medium'}); | ||
var xax = b.xaxis(1,0); | var xax = b.xaxis(1,0); | ||
− | var yax = b.yaxis(1,0); | + | var yax = b.yaxis(1,0); |
− | var p1 = b.point(3,4,{fixed:false}); | + | |
− | + | var p1 = b.point(3,4, {fixed:false}); | |
− | + | ||
− | + | var pullMe = b.txt(4.1, 4.5, 'Dra mig!', {mathMode:false}); | |
− | var | + | |
− | + | var calc = b.txt(-4,function() { | |
− | + | if (p1.Y() > 4) { | |
− | var | + | if (p1.X() < -2) { |
− | + | return -5; | |
− | + | } | |
− | + | } | |
− | + | else { | |
+ | return 5; | ||
+ | } | ||
+ | },'(3.0,4.0)',{flag:true,fontsize:1.1}); | ||
$(b.getDiv(calc)).css({ | $(b.getDiv(calc)).css({ | ||
"text-align":"center", | "text-align":"center", | ||
"padding":"2px" | "padding":"2px" | ||
}); | }); | ||
− | var | + | |
− | b. | + | |
− | p1.on('drag',function(){ | + | var nx = b.node(3,0); |
+ | var ny = b.node(0,4); | ||
+ | |||
+ | var xArrow = b.segment(p1, nx, {touchLastPoint:false,lastArrow:true}); | ||
+ | var yArrow = b.segment(p1, ny, {touchLastPoint:false,lastArrow:true}); | ||
+ | |||
+ | p1.on('drag', function() { | ||
+ | b.hide([xArrow, yArrow, pullMe]); | ||
+ | b.changeText(calc, '(x,y)'); | ||
− | + | if (p1.X() - xMin < border) { | |
− | + | p1.moveTo([xMin+border, p1.Y()]); | |
− | + | } | |
− | + | if (xMax - p1.X() < border) { | |
− | if(p1. | + | p1.moveTo([xMax-border, p1.Y()]); |
− | + | } | |
+ | if (p1.Y() - yMin < border) { | ||
+ | p1.moveTo([p1.X(), yMin+border]); | ||
+ | } | ||
+ | if (yMax - p1.Y() < border) { | ||
+ | p1.moveTo([p1.X(), yMax-border]); | ||
} | } | ||
− | + | ||
− | + | if (Math.abs(nx.Y() - p1.Y()) < padding) { | |
− | + | xArrow.setAttribute({lastArrow:false}); | |
− | |||
} | } | ||
else { | else { | ||
− | + | xArrow.setAttribute({lastArrow:true}); | |
} | } | ||
− | if (p1.X() | + | if (Math.abs(ny.X() - p1.X()) < padding) { |
− | + | yArrow.setAttribute({lastArrow:false}); | |
} | } | ||
else { | else { | ||
− | + | yArrow.setAttribute({lastArrow:true}); | |
} | } | ||
− | |||
− | |||
}); | }); | ||
− | + | ||
− | + | p1.on('up', function() { | |
− | + | var tempText = '(' + p1.X().toFixed(1) + ',' + p1.Y().toFixed(1) + ')'; | |
− | + | tempText = tempText.replace(/-/g, '\\text{-}'); | |
− | + | var hasCallback = false; | |
− | + | if (Math.abs(p1.Y()) > padding) { | |
− | + | nx.moveTo([p1.X(),p1.Y() - Math.sign(p1.Y())*padding]); | |
− | + | nx.moveTo([p1.X(), 0],500, {callback:function() {b.changeText(calc,tempText);}}); | |
− | + | hasCallback = true; | |
− | + | } | |
− | } | + | else { |
− | if( | + | nx.moveTo([p1.X(), 0]); |
− | + | } | |
− | + | if (Math.abs(p1.X()) > padding) { | |
− | if( | + | ny.moveTo([p1.X() - Math.sign(p1.X())*padding,p1.Y()]); |
− | + | if (hasCallback) { | |
− | + | ny.moveTo([0,p1.Y()],500); | |
− | + | } | |
− | + | else { | |
+ | ny.moveTo([0,p1.Y()],500, {callback:function() {b.changeText(calc,tempText);}}); | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | + | else { | |
− | + | if (!hasCallback) { | |
− | if( | + | b.changeText(calc,tempText); |
− | + | } | |
− | + | ny.moveTo([0,p1.Y()]); | |
− | |||
} | } | ||
+ | b.show([xArrow, yArrow]); | ||
}); | }); | ||
</jsxgpre> | </jsxgpre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Kategori:Funktioner]] | [[Kategori:Funktioner]] |