{{ stepNode.name }}
| {{ 'ml-lesson-number-slides' | message : article.introSlideInfo.bblockCount}} |
| {{ 'ml-lesson-number-exercises' | message : article.introSlideInfo.exerciseCount}} |
| {{ 'ml-lesson-time-estimation' | message }} |
Karin.hedin@osteraker.se (Diskussion | bidrag) | Jonas (Diskussion | bidrag) | ||
Rad 12: | Rad 12: | ||
var b = mlg.board([1,4.8,14,-0.6], {desktopSize:'medium'}); | var b = mlg.board([1,4.8,14,-0.6], {desktopSize:'medium'}); | ||
− | / | + | /* Stora triangeln */ |
var p1 = b.node(4.2,0); | var p1 = b.node(4.2,0); | ||
var p2 = b.node(p1.X()+scaleFactor*2.3,p1.Y()); | var p2 = b.node(p1.X()+scaleFactor*2.3,p1.Y()); | ||
var p3 = b.node(p1.X()+scaleFactor*1.55,p1.Y()+scaleFactor*1.32); | var p3 = b.node(p1.X()+scaleFactor*1.55,p1.Y()+scaleFactor*1.32); | ||
var bigtri=b.polygon([p1,p2,p3],{fillcolor:'mlhoy!30',opacity:1}); | var bigtri=b.polygon([p1,p2,p3],{fillcolor:'mlhoy!30',opacity:1}); | ||
− | ra1 = b.angle(p3,p2,p1,{radius:angleRadiusII,opacity:1,fillcolor:'mlhoy!60'}); | + | var ra1 = b.angle(p3,p2,p1,{radius:angleRadiusII,opacity:1,fillcolor:'mlhoy!60'}); |
− | ra2 = b.angle(p2,p1,p3,{radius:angleRadiusII,opacity:1,fillcolor:'mlhoy!60'}); | + | var ra2 = b.angle(p2,p1,p3,{radius:angleRadiusII,opacity:1,fillcolor:'mlhoy!60'}); |
− | / | + | /* Labels på sidorna */ |
b.segmentLabel(bigtri.borders[1],'\\ 1.5',-distFactor); | b.segmentLabel(bigtri.borders[1],'\\ 1.5',-distFactor); | ||
b.segmentLabel(bigtri.borders[2],'\\ 2',-distFactor); | b.segmentLabel(bigtri.borders[2],'\\ 2',-distFactor); | ||
− | |||
b.angleLabel(ra2,null,{rOffset:0.2,angleOffset:-5}); | b.angleLabel(ra2,null,{rOffset:0.2,angleOffset:-5}); | ||
Rad 51: | Rad 50: | ||
var b = mlg.board([-1,4.5,12,-0.9], {desktopSize:'medium'}); | var b = mlg.board([-1,4.5,12,-0.9], {desktopSize:'medium'}); | ||
− | / | + | /* Stora triangeln */ |
var p1 = b.node(4.2,0); | var p1 = b.node(4.2,0); | ||
var p2 = b.node(p1.X()+scaleFactor*2.3,p1.Y()); | var p2 = b.node(p1.X()+scaleFactor*2.3,p1.Y()); | ||
var p3 = b.node(p1.X()+scaleFactor*1.55,p1.Y()+scaleFactor*1.32); | var p3 = b.node(p1.X()+scaleFactor*1.55,p1.Y()+scaleFactor*1.32); | ||
var bigtri=b.polygon([p1,p2,p3],{fillcolor:'mlhoy!30',opacity:1}); | var bigtri=b.polygon([p1,p2,p3],{fillcolor:'mlhoy!30',opacity:1}); | ||
− | ra1 = b.angle(p3,p2,p1,{radius:angleRadiusII,opacity:1,fillcolor:'mlhoy!60'}); | + | var ra1 = b.angle(p3,p2,p1,{radius:angleRadiusII,opacity:1,fillcolor:'mlhoy!60'}); |
− | ra2 = b.angle(p2,p1,p3,{radius:angleRadiusII,opacity:1,fillcolor:'mlhoy!60'}); | + | var ra2 = b.angle(p2,p1,p3,{radius:angleRadiusII,opacity:1,fillcolor:'mlhoy!60'}); |
− | / | + | /* Labels på sidorna */ |
b.segmentLabel(bigtri.borders[1],'\\ 1.5',-distFactor); | b.segmentLabel(bigtri.borders[1],'\\ 1.5',-distFactor); | ||
b.segmentLabel(bigtri.borders[2],'\\ 2',-distFactor); | b.segmentLabel(bigtri.borders[2],'\\ 2',-distFactor); | ||
Rad 65: | Rad 64: | ||
− | / | + | /* Lilla triangeln */ |
var p4 = b.node(0,0); | var p4 = b.node(0,0); | ||
var p5 = b.node(p4.X()+scaleFactor*0.8,p4.Y()); | var p5 = b.node(p4.X()+scaleFactor*0.8,p4.Y()); | ||
Rad 72: | Rad 71: | ||
var la1 = b.angle(p6,p5,p4,{radius:angleRadiusI, opacity:1, fillcolor:'mltiny!60'}); | var la1 = b.angle(p6,p5,p4,{radius:angleRadiusI, opacity:1, fillcolor:'mltiny!60'}); | ||
var la2 = b.angle(p5,p4,p6,{radius:angleRadiusII, opacity:1, fillcolor:'mltiny!60'}); | var la2 = b.angle(p5,p4,p6,{radius:angleRadiusII, opacity:1, fillcolor:'mltiny!60'}); | ||
− | / | + | /* Labels på sidorna */ |
b.segmentLabel(smalltri.borders[1],'\\ 1.5',-distFactor); | b.segmentLabel(smalltri.borders[1],'\\ 1.5',-distFactor); | ||
b.segmentLabel(smalltri.borders[2],'\\ 2',-distFactor); | b.segmentLabel(smalltri.borders[2],'\\ 2',-distFactor); | ||
Rad 90: | Rad 89: | ||
var b = mlg.board([-0.5,4.2,12.5,-0.8], {desktopSize:'medium'}); | var b = mlg.board([-0.5,4.2,12.5,-0.8], {desktopSize:'medium'}); | ||
− | / | + | /* De olika punkterna. firstTriPoint är den man drar i. */ |
var origoPoint = b.node(0,0); | var origoPoint = b.node(0,0); | ||
var topPoint = b.node(5,4); | var topPoint = b.node(5,4); | ||
Rad 105: | Rad 104: | ||
− | / | + | /* De olika trianglarna (utan strokeColor) */ |
var firstTri = b.polygon([midPoint,endPoint,topPoint],{withlines:false,opacity:1, fillcolor:'mlhoy!30'}); | var firstTri = b.polygon([midPoint,endPoint,topPoint],{withlines:false,opacity:1, fillcolor:'mlhoy!30'}); | ||
var secondTri = b.polygon([origoPoint,topPoint,midPoint],{withlines:false,opacity:1, fillcolor:'mlhoy!40'}); | var secondTri = b.polygon([origoPoint,topPoint,midPoint],{withlines:false,opacity:1, fillcolor:'mlhoy!40'}); | ||
− | / | + | /* Dra mig texterna */ |
var pullMe = b.txt(firstTriPoint.X(),firstTriPoint.Y()-0.4,'<translate><!--T:8--> Drag mig</translate>!', {mathMode:false}); | var pullMe = b.txt(firstTriPoint.X(),firstTriPoint.Y()-0.4,'<translate><!--T:8--> Drag mig</translate>!', {mathMode:false}); | ||
var pullMeII = b.txt(secondTriPoint.X(),secondTriPoint.Y()-0.4,'<translate><!--T:9--> Drag mig</translate>!', {mathMode:false}); | var pullMeII = b.txt(secondTriPoint.X(),secondTriPoint.Y()-0.4,'<translate><!--T:9--> Drag mig</translate>!', {mathMode:false}); | ||
− | / | + | /* Vinklarna (origo,firstTriPoint,secondTriPoint) */ |
var angleOrigo = b.angle(endPoint,origoPoint,topPoint,{radius:angleRadius,fillcolor:'mlhoy!60',opacity:1}); | var angleOrigo = b.angle(endPoint,origoPoint,topPoint,{radius:angleRadius,fillcolor:'mlhoy!60',opacity:1}); | ||
var angleFirstTri = b.angle(topPoint,endPoint, midPoint,{radius:angleRadius,fillcolor:'mlhoy!60',opacity:1,orthotype:'square'}); | var angleFirstTri = b.angle(topPoint,endPoint, midPoint,{radius:angleRadius,fillcolor:'mlhoy!60',opacity:1,orthotype:'square'}); | ||
Rad 124: | Rad 123: | ||
b.hide(angleRightLabel); | b.hide(angleRightLabel); | ||
− | / | + | /* Segmenten som bildar trianglarna */ |
var line1 = b.segment(origoPoint,topPoint); | var line1 = b.segment(origoPoint,topPoint); | ||
var line3= b.segment(endPoint,origoPoint); | var line3= b.segment(endPoint,origoPoint); | ||
Rad 130: | Rad 129: | ||
var dashLine = b.segment(midPoint,topPoint,{dash:2}); | var dashLine = b.segment(midPoint,topPoint,{dash:2}); | ||
− | / | + | /* Labels till sträckorna */ |
b.segmentLabel(line1,'b',0.4,0.5,{rotateText:false,mathMode:true}); | b.segmentLabel(line1,'b',0.4,0.5,{rotateText:false,mathMode:true}); | ||
var fullLineLabel = b.segmentLabel(fullLine,'a',-0.4,0.5,{rotateText:false,mathMode:true}); | var fullLineLabel = b.segmentLabel(fullLine,'a',-0.4,0.5,{rotateText:false,mathMode:true}); | ||
Rad 143: | Rad 142: | ||
− | / | + | /* Kontrollera om punkterna ska snappa till rätvinklig triangel */ |
if (Math.abs(midPoint.X() - topPoint.X()) < snapDist) { | if (Math.abs(midPoint.X() - topPoint.X()) < snapDist) { | ||
firstTriPoint.moveTo([topPoint.X(),0]); | firstTriPoint.moveTo([topPoint.X(),0]); | ||
Rad 155: | Rad 154: | ||
} | } | ||
− | / | + | /* Göm vinkellabels om de kommer för nära varandra */ |
if (midPoint.X() - origoPoint.X() < 2.6*angleRadius) { | if (midPoint.X() - origoPoint.X() < 2.6*angleRadius) { | ||
b.hide([angleOrigoLabel,angleSecondTriLabel],1); | b.hide([angleOrigoLabel,angleSecondTriLabel],1); | ||
Rad 163: | Rad 162: | ||
} | } | ||
− | / | + | /* Krymp vinkelmarkörerna om de kommer för nära varandra */ |
if (midPoint.X() - origoPoint.X() < 2*angleRadius) { | if (midPoint.X() - origoPoint.X() < 2*angleRadius) { | ||
angleOrigo.setAttribute({radius:(midPoint.X() - origoPoint.X())/2}); | angleOrigo.setAttribute({radius:(midPoint.X() - origoPoint.X())/2}); | ||
Rad 173: | Rad 172: | ||
} | } | ||
− | / | + | /* Om det inte finns en andra triangel, göm/visa lite saker */ |
if (midPoint.X() == origoPoint.X()) { | if (midPoint.X() == origoPoint.X()) { | ||
angleOrigo.setAttribute({radius:angleRadius}); | angleOrigo.setAttribute({radius:angleRadius}); | ||
Rad 186: | Rad 185: | ||
} | } | ||
− | / | + | /* Se till att punkterna håller sig på plats */ |
if (firstTriPoint.X() > secondTriPoint.X()) { | if (firstTriPoint.X() > secondTriPoint.X()) { | ||
firstTriPoint.moveTo([endPoint.X(),0]); | firstTriPoint.moveTo([endPoint.X(),0]); |
Det går alltid att skapa en triangel som innehåller den spetsiga vinkeln B1, men det är inte alltid möjligt att bilda en med den trubbiga vinkeln B2.
Ibland blir B2 så stor att den tillsammans med vinkeln A blir större än 180∘, och då går det inte bilda en triangel eftersom alla trianglar måste ha vinkelsumman 180∘. Man kan visa att detta sker om vinkeln B1 är mindre än vinkeln A.