¿Calcular la trayectoria del proyectil con la gravedad de los planetas del disco en 2D?

Estoy haciendo un juego en 2D en el que controlas una nave espacial y vuelas entre planetas en forma de disco de diferentes tamaños (masa/tracción). Los planetas son pequeños y puedes volar cerca de varios a la vez. Necesito calcular la gravedad producida por cada uno de estos planetas tirando de la nave, incluida la velocidad de la nave.

Descubrí una manera de aproximarlo:

  1. Calcule la posición del cohete en el siguiente cuadro en función del ángulo y la velocidad.
  2. A partir de esta posición, calcule la posición de un punto atraído hacia el planeta donde cuanto más grande es el planeta, más lejos está este punto hacia dicho planeta.
  3. Haga esto para cada planeta y luego promedie cada uno de estos puntos para encontrar la nueva ubicación para el cohete en este cuadro.
  4. La rotación no importa en mi caso, pero la calcularía comparando la ubicación de este punto y la ubicación del punto anterior.
  5. Repita para cada cuadro.

Esta puede ser una buena aproximación, y la precisión no es un gran problema en mi caso, pero me pregunto si hay una mejor manera de hacer esto con fórmulas físicas. Todavía no he tomado una clase de física. El otro gran problema de esta solución es que debe calcularla paso a paso o fotograma a fotograma. Si hay una fórmula para hacer esto, la ruta podría calcularse desde el principio antes.

Parece que esto ya se ha respondido en physics.stackexchange.com/q/20077
Eso parece ser 3D, lo que complicaría demasiado las cosas para mí.
Es válido en cualquier número de dimensiones, incluidas 2.

Respuestas (1)

La fórmula de la gravedad es F gramo = GRAMO metro 1 metro 2 r 2 . Así que almacene variables para su X y y velocidades (o una matriz o cualquier método que desee) y cambie su posición por su velocidad en cada cuadro. Además, cada cuadro, use un ciclo (no sé qué idioma está usando, así que no puedo dar el código exacto) para mirar cada planeta y conectar todo en la fórmula y cambiar la velocidad por la cantidad que devuelve, en la dirección del planeta. Multiplícalo o divídelo por lo que quieras para que sea razonable, a menos que estés usando unidades reales, en cuyo caso, divide el número por la masa del barco. Haga esto para cada planeta en el sistema.

Acerca de calcular de antemano, esto probablemente sea técnicamente posible, pero requeriría una cantidad ridícula de matemáticas y podría ser más difícil (para la computadora) que actualizar cuadro por cuadro. Sin embargo, si hay un cuerpo, la trayectoria no es demasiado difícil de predecir.