Determinar la velocidad resultante de una colisión elástica partícula-partícula en el espacio 3d

Así que tengo dos partículas que chocaron en un espacio tridimensional. Quiero que las partículas reboten entre sí de manera elástica. ¿Cómo determino el vector de velocidad resultante si sé: el vector de velocidad inicial de ambas partículas, sus masas y sus vectores de posición inicial en relación con el origen?

Traté de seguir las instrucciones en este sitio web pero no estoy seguro de cómo hacer que sus ecuaciones funcionen sin coordenadas polares/cómo traducir mis datos a coordenadas polares.

Además, si responde mi pregunta en términos de coordenadas polares, ¿puede explicar qué ángulo es theta y cuál es phi? Dado que hay 2 convenciones diferentes, no estoy seguro de a qué ángulo se hace referencia en la explicación del sitio web mencionado anteriormente.

EDITAR: Esto no es para una clase. Estoy escribiendo un motor de física para una simulación de gravedad que estoy haciendo con Unity. No he tomado cinemática desde que estaba en la escuela secundaria, por eso estoy tan oxidado.

¿Sabes cómo hacer esto en una dimensión? ¿Qué tal dos?
Entonces, ¿ las conversiones de coordenadas ya no se enseñan?
RE EDITAR : esta página web puede ser útil para explicar la colisión elástica 2D.

Respuestas (3)

¡Me sorprende que todavía no haya una respuesta satisfactoria en este sitio!

Esto se puede responder en cualquier número de dimensiones con algunas matemáticas vectoriales relativamente simples. Como sigue intuitivamente (rigurosamente en el marco del centro de masa), para partículas de igual masa, las velocidades relativas de las partículas se invierten a lo largo de la dirección normal. Todo lo que hay que hacer es traducir eso a ecuaciones vectoriales.

el algoritmo

Calcular el vector normal de colisión:

norte ^ = r 1 r 2 r 1 r 2
Calcule la velocidad relativa de las partículas en la dirección de la normal, utilizando un producto escalar:
v r mi yo = ( r ˙ 1 r ˙ 2 ) norte ^

Para invertir las velocidades de las partículas a lo largo de la normal de colisión, tome:

r ˙ 1 r ˙ 1 v r mi yo norte ^
r ˙ 2 r ˙ 2 + v r mi yo norte ^

Eso es todo. Pan comido. Funciona en 1D, 2D, 3D, 4D, 5D; cualquier número de dimensiones. ¡Y es bastante simple!

Viendo que el algoritmo funciona

Para ver que esto invierte las velocidades a lo largo de la dirección normal, calcule r ˙ 1 norte ^ antes y después de. Encontrarás:

v r mi yo = ( r ˙ 1 r ˙ 2 ) norte ^ r ˙ 1 norte ^ v r mi yo norte ^ norte ^ r ˙ 2 norte ^ v r mi yo norte ^ norte ^ = v r mi yo 2 v r mi yo = v r mi yo

Un punto clave es que la velocidad y el momento del centro de masa del sistema no cambian como resultado de la colisión. Recomendaría calcular la velocidad del centro de masa antes de la colisión y luego usar el hecho de que no ha cambiado para calcular las nuevas velocidades. Si la colisión es realmente elástica (sin disipación), entonces también se conservará la energía cinética del sistema. El impulso y la conservación de la energía cinética deberían ser todo lo que necesita para calcular las velocidades posteriores a la colisión.

Si está escribiendo su motor de física en coordenadas cartesianas, probablemente sea mucho más fácil realizar los cálculos de colisión en coordenadas cartesianas en lugar de intentar usar las ecuaciones de ese sitio web. Además, habla de la colisión de dos partículas, lo que me suena como si las estuviera tratando como masas puntuales, mientras que ese sitio realiza cálculos para la colisión de dos esferas.

Si desea simular colisiones elásticas entre masas puntuales en 3 dimensiones en coordenadas cartesianas, ¡probablemente sea más fácil resolver las ecuaciones usted mismo! De esa manera, también tendrá muchos menos problemas para depurar su código (esto es de mi experiencia personal).

¿No sería una colisión entre masas puntuales un evento de probabilidad cero?