Disons que j'ai un cercle qui rebondit dans une zone rectangulaire. À un certain point, ce cercle va entrer en collision avec l'une des surfaces du rectangle et refléter. La façon habituelle de faire cela serait de laisser le cercle chevaucher cette limite et ensuite refléter le vecteur vitesse. Le fait que le cercle recouvre réellement la frontière n'est généralement pas un problème, ni vraiment perceptible à faible vitesse. À grande vitesse, il devient évident que le cercle fait quelque chose qu'il ne devrait pas faire.Calcul d'une collision pour un cercle mobile, sans chevauchement des limites
Ce que je voudrais faire est de prendre en compte la réflexion par programme et de placer le cercle à sa position appropriée avant de l'afficher sur l'écran. Cela signifie que je dois calculer le point où il atteint la limite entre sa position actuelle et sa position future - plutôt que de calculer sa nouvelle position et ensuite vérifier si elle a atteint la limite.
Ceci est un peu plus compliqué que le problème de collision cercle/rectangle habituel. J'ai une vague idée de la façon dont je devrais le faire - créer essentiellement un rectangle englobant entre la position actuelle et la nouvelle position, ce qui soulève une série de problèmes de sa part (Puisque le rectangle est tourné en fonction de la direction du cercle rapidité). Cependant, je pense que c'est un problème commun, et qu'une solution commune existe déjà.
Existe-t-il une solution commune à ce genre de problème? Peut-être quelques théories de base que je devrais examiner?
Wow, je pensais vraiment à ça. –