You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.4 KiB
60 lines
2.4 KiB
// -------------------- sankore -------------------- |
|
// Ces fonctions permettent de dessiner le graphique directement dans sankore. |
|
|
|
// Calcule tous les points de la fonction mathématique et les place dans des tableaux. |
|
function evaluerUniboard(eq) { |
|
largeur += 100 |
|
hauteur += 100 |
|
decalageX -= 250 |
|
decalageY -= 200 |
|
borneXGauche = parseFloat(document.getElementById("borneXGauche").value) |
|
borneXDroite = parseFloat(document.getElementById("borneXDroite").value) |
|
borneYGauche = parseFloat(document.getElementById("borneYGauche").value) |
|
borneYDroite = parseFloat(document.getElementById("borneYDroite").value) |
|
multiplicateurX = (largeur)/Math.abs(borneXDroite - borneXGauche) |
|
multiplicateurY = (hauteur)/Math.abs(borneYDroite - borneYGauche) |
|
lineWidth = document.getElementById("inputTaille").value |
|
var i = 0 |
|
|
|
BoucleFor: for(x=borneXGauche; x<=(borneXDroite+0); x=x+precision){ |
|
i++ |
|
y = eval(eq) |
|
pointX[i] = Math.round((x - borneXGauche) * multiplicateurX) |
|
pointY[i] = hauteur - Math.round((y - borneYGauche) * multiplicateurY) |
|
} |
|
calculerGraphUniboard(i) |
|
} |
|
|
|
// Regarde chaque coordonnées stockées dans le tableau et dessine le graphique |
|
function calculerGraphUniboard(fin){ |
|
document.getElementById("affichage").innerHTML = "" |
|
sankore.setTool('pen') |
|
sankore.moveTo(pointX[2]+decalageX, pointY[2]+decalageY) |
|
for (i=3; i<fin; i++){ |
|
if ((pointY[i]<0) || (pointY[i]>hauteur)){ |
|
sankore.moveTo(pointX[i+1]+decalageX,pointY[i+1]+decalageY) |
|
continue |
|
} |
|
sankore.drawLineTo(pointX[i]+decalageX, pointY[i]+decalageY, lineWidth) |
|
} |
|
|
|
//dessiner le cadre |
|
sankore.moveTo(0+decalageX,0+decalageY) |
|
sankore.drawLineTo(largeur+decalageX, 0+decalageY, lineWidth) |
|
sankore.drawLineTo(largeur+decalageX, hauteur+decalageY, lineWidth) |
|
sankore.drawLineTo(0+decalageX, hauteur+decalageY, lineWidth) |
|
sankore.drawLineTo(0+decalageX, 0+decalageY, lineWidth) |
|
|
|
//dessiner les axes |
|
sankore.moveTo((-borneXGauche*multiplicateurX)+decalageX, 0+decalageY) |
|
sankore.drawLineTo((-borneXGauche*multiplicateurX)+decalageX, hauteur+decalageY, lineWidth) |
|
sankore.moveTo(0+decalageX, (hauteur-(-borneYGauche*multiplicateurY))+decalageY) |
|
sankore.drawLineTo(largeur+decalageX, (hauteur-(-borneYGauche*multiplicateurY))+decalageY, lineWidth) |
|
|
|
decalageX += 250 |
|
decalageY += 200 |
|
largeur -= 100 |
|
hauteur -= 100 |
|
sankore.setTool('arrow') |
|
} |
|
|