[Mathématiques/JS] Calcule assez complexe..
Résolu
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:
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 :)
--
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 :)
--
On dit que les oiseaux sont libres dans le ciel, Mais la vraie liberté n'est pas celle d'avoir un endroit où se poser ?
Configuration: Windows XP Firefox 3.0
2 réponses
-
Contributeurau 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); -
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!