Je continue de trébucher sur des solutions de jeu/simulation pour trouver de la distance pendant que le temps passe, et ce n'est pas ce que je cherche.Calcul des temps de collision entre deux cercles - Physique
Je cherche une formule O (1) pour calculer le (s) temps d'horloge (0 ou 1 ou 2) dans lequel deux cercles sont exactement à distance r1 + r2 l'un de l'autre. Le temps négatif est possible. Il est possible que deux cercles n'entrent pas en collision, et qu'ils ne puissent pas avoir d'intersection (comme dans 2 voitures "se coupant" en conduisant trop près du milieu de la route dans des directions opposées), ce qui gâche tout mon mx + b solutions. Techniquement, une collision ponctuelle devrait être possible. J'ai environ 100 lignes de code en profondeur, et je suis sûr qu'il doit y avoir un meilleur moyen, et je ne suis même pas sûr si mes cas de test sont corrects ou non. Ma configuration initiale était:
dist(x1+dx1*t, y1+dy1*t, x2+dx2*t, y2+dy2*t) == r1+r2
En supposant la distance à tout instant t peut être calculé avec Pythagore, je voudrais savoir les deux points dans le temps où la distance entre les centres est précisément la somme des rayons . J'ai résolu pour a, b, et c et appliqué la formule quadratique, et je crois que si je suppose qu'ils étaient des objets fantômes, cela me donnerait le premier moment de collision et le dernier moment de collision, et je pourrais supposer à à chaque instant, ils se chevauchent. Je travaille sous la condition qu'il est impossible que 2 objets se chevauchent à t0, ce qui signifie qu'une collision infinie de "coincé l'un dans l'autre" n'est pas possible. Je filtre également et utilise la manipulation spéciale pour quand la pente est 0 ou infinie, qui fonctionne. J'ai essayé de calculer la distance quand, pour le moment, l'objet 1 est au point d'intersection, c'est la distance de l'objet 2, et de même quand o2 est au point d'intersection, mais cela n'a pas fonctionné car il est possible ils ne sont pas à leur intersection.
J'ai des problèmes lorsque les pentes sont égales, mais de magnitude différente.
Existe-t-il déjà une formule physique/mathématique simple pour cela? Le langage de programmation n'a pas d'importance, le pseudo serait génial, ou n'importe quelle formule mathématique qui n'a pas de symboles complexes (je ne suis pas un math/physicien) ... mais rien d'ordre supérieur (je suppose que python probablement a déjà une méthode de collision (p1, p2)
Est-ce que les objets ont une vitesse constante comme dans votre équation? Si oui, vous devriez simplement pouvoir résoudre le problème pour _t_. Qu'est-ce qui ne fonctionne pas? – pingul