[Mathématiques/JS] Calcule assez complexe..

Résolu
Tiller Messages postés 783 Statut Membre -  
Tiller Messages postés 783 Statut Membre -
Bonjour,

Je suis entrain de faire un script où des yeux suivrait le curseur de la souris. Je cherche donc l'emplacement de la pupille, je donc transformé en probleme de maths:
http://imagepaste.net/images/math23691.png

Et voila je raisonnement au quel je suis arrivé, qui est archi-faux apparement:
<script language="Javascript">
// Emplacement du point A
// Avec ces coordonnées on devrait trouvé quelque chose aux alentours de (8,8) et (14,14)
var nX = 211;
var nY = 211;
// Coeff directeur de la droite (OA)
// Y = aX + b
a = (nY - 11) / (nX - 11);
b = nY - nX * a;

// Equation du cercle :
// X² - Y² - 22X - 22Y = - 206
// On remplace Y par aX + b
// On reduit pour obtenir une equation de la forme AX² + BX + C = 0
// A:
var na = 2 * a * a;
// B:
var nb = (2 * a * b - 22 - 22 * a);
// C:
var nc = 206 + b * b - 22 * b;
// On calcule Delta pour trouver les solutions
var delta = nb * nb - 4 * na * nc;
// Delta = 288
if (delta > 0)
{
	var sol1 = (nb * nb - Math.sqrt(delta)) / (2 * na);
	// Sol1 = 479,75...
	var sol2 = (nb * nb + Math.sqrt(delta)) / (2 * na);
	// Sol2 = 488,24...
	//Donc completement archi-faux.
}
</script>


Si quelqu'un sais ou je me suis planté... Merci!
Ps: Je ne veux pas de code tous fait, je prefere trouver tous seul, faire les erreurs seul, et comprendre mes erreurs :)

2 réponses

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
au lieu de
var sol1 = (nb * nb - Math.sqrt(delta)) / (2 * na);
// Sol1 = 479,75...
var sol2 = (nb * nb + Math.sqrt(delta)) / (2 * na);


je suggère

var sol1 = (- nb - Math.sqrt(delta)) / (2 * na);
// Sol1 = 479,75...
var sol2 = (- nb + Math.sqrt(delta)) / (2 * na);
0
Tiller Messages postés 783 Statut Membre 211
 
Aaaaaaaaaaaaaaaaaaaaaaah
Je suis un boulet >.>
J'étais sûr que c'était b² - racine(Delta)..
Maintenant que j'y réflechis, c'est vrai que c'est - b - racine(Delta).
Merci beaucoup!
0