Pour l'école, je dois faire un programme en JavaScript indiquant si les cercles avaient une collision.
Il n'a pas besoin d'être montré graphiquement. P>
Je l'ai essayé, mais mon code ne semble pas fonctionner. Comment puis-je résoudre le problème? P>
Voici le code que j'ai produit: p>
3 Réponses :
la longueur d'un triangle ayant des côtés Donc, vous voulez probablement: p> dx code> et
dy code> (c'est-à-dire la distance entre les points
(x1, y1) code> et
( x2, y2) code> où
dx = x2 - x1 code> et
dy = y2 - y1 code>) est égal à:
Votre chèque doit être donc le code complet est p> p> si (a> math.sqrt ((x * x) + (y * y))) code>
http://cgp.wikidot.com/circle-a-circle-collision- Détection
const checkCollision = (p1x, p1y, r1, p2x, p2y, r2) => ((r1 + r2) ** 2 > (p1x - p2x) ** 2 + (p1y - p2y) ** 2)
var collision = checkCollision(5, 500, 10, 1000, 1500, 1500);
console.log(collision);
Dans votre relevé si em>, essayez cela à la place: if ( a * a > (x * x + y * y) ) {
...
} else {
...
}
Tu n'as pas manqué quelque chose dans tes formules ici?
Et vous pouvez modifier votre déclaration de retour à juste
retour (A> (x * x) + (y * y)); code> plutôt que d'utiliser un si pour retourner vrai ou faux, car c'est ce que c'est la condition déjà est. Ou mieux, stockez la condition dans une variable nommée
var iSCollision = (A> (x * x) + (y * y)); code> et
retour ISCollision; code> il fait juste il est plus facile de lire. Et ne réutilisez pas de noms de variables comme la collision pour deux choses.
Relire la formule de distance. Vous l'avez presque fait, mais il manque une partie.
Un bon moyen de déboguer des problèmes est de passer à travers le code.