Cálculo del vector para apuntar al asteroide en movimiento (juego de asteroides en 3D)

Considerando que estamos en un sistema de coordenadas 3D:

  1. nuestro barco está en el punto A, inmóvil
  2. nuestra nave puede disparar balas, cuya velocidad se conoce
  3. el asteroide está en el punto B
  4. el asteroide se mueve en un vector conocido con velocidad conocida

Pregunta : ¿En qué vector necesita nuestra nave para disparar su bala, de modo que el asteroide sea alcanzado?

Mi intento hasta ahora: encontrar un punto C tal que:

  1. distancia(A,C) / velocidad_de(bala) = distancia(B,C) / velocidad_de(asteroide)
  2. el punto C está en el vector conocido del asteroide

Y estoy atrapado aquí.

¿No se mueve también la nave, como los asteroides originales?
@ja72 Quería simplificar las cosas.
¿Hay incluso una solución sin saber la velocidad de la bala?

Respuestas (3)

Ese es un buen comienzo, pero el punto 2 se puede hacer un poco más preciso. Digamos que el asteroide comienza en B 0 en el momento 0 y tiene velocidad constante B ˙ . Entonces su posición en el tiempo t es

(1) B ( t ) = B 0 + t B ˙ .
Su C es solo un punto en esta línea, que conoceríamos si supiéramos t h i t , el momento en que la bala golpea el asteroide:
(2) C = B ( t h i t ) .

Pero como encontrar t h i t ? Bueno, podemos trabajar desde la perspectiva de la bala, cuya posición denotaré con A ( t ) (no hay necesidad de preocuparse por el barco, ya que no se mueve). Como antes, tenemos

(3) A ( t ) = A 0 + t A ˙ ,
excepto aquí A ˙ es una constante vectorial desconocida. En realidad, no es del todo desconocido, ya que debe satisfacer
(4) v 2 = A ˙ A ˙ = A ˙ X 2 + A ˙ y 2 + A ˙ z 2 ,
dónde v es la velocidad fija de la bala. Ahora nuevamente el punto de impacto debe ocurrir a lo largo de la trayectoria de la bala, y después del mismo tiempo transcurrido:
(5) C = A ( t h i t ) .

Las ecuaciones (1), (2), (3) y (5) se combinan para formar

(6) B 0 + t h i t B ˙ = A 0 + t h i t A ˙ .
Entonces (4) y (6) forman un sistema de 4 ecuaciones escalares con 4 incógnitas ( t h i t , A ˙ X , A ˙ y , y A ˙ z ) y por lo tanto se puede resolver de forma única.

(En realidad, puede haber dos o cero soluciones, dependiendo de los valores reales. Cero soluciones significa que su bala es demasiado lenta para ponerse al día. Dos soluciones probablemente significan que una corresponde a negativo t h i t , como si la bala pasara del asteroide en el pasado a la nave en el presente. Aunque también podría significar que hay dos posibilidades de golpear el asteroide).


Para un barco en movimiento, la velocidad de tu bala en estas coordenadas, A ˙ b tu yo yo mi t , viene dada por la suma de la velocidad conocida del barco cuando se dispara la bala, digamos A ˙ s h i pag , y la velocidad que se ha de encontrar de la bala con respecto al barco, A ˙ r mi yo a t i v mi . Para trabajar con esto, simplemente resuelva para A ˙ b tu yo yo mi t (también conocido como A ˙ ) como arriba, y luego calcular

A ˙ r mi yo a t i v mi = A ˙ b tu yo yo mi t A ˙ s h i pag .

Gracias por la respuesta, pero no entiendo de dónde viene la ecuación (4) (¿álgebra lineal?) En realidad, esto no es una tarea, por lo que le agradecería mucho si pudiera decirme qué más, además de la física clásica, ¿Necesito aprender para comprender completamente su solución (y posiblemente modificarla para tener en cuenta un barco en movimiento)?
también tenga en cuenta que A 0 C = A 0 B 0 t B ˙ = v t .
@Bradley My (4) es solo una forma de escribir su declaración "nuestra nave puede disparar balas, cuya velocidad se conoce". Escribo esa velocidad conocida como v , y en mi notación el vector A ˙ = ( A ˙ X , A ˙ y , A ˙ z ) es simplemente el vector de velocidad de la bala. A ˙ = v es la ecuación de restricción fundamental, pero es más fácil de escribir elevando al cuadrado ambos lados.

Tienes que convertir esto en un problema 2D. Para encontrar 3 vectores unitarios que describan un sistema de coordenadas 3D local donde el problema plano está a lo largo del local i ^ y j ^ ejes, con el plano perpendicular k ^ . El subíndice A denota el asteroide y B la bala, con r posiciones, mi direcciones y v velocidades La notación es inversa al OP porque A = asteroide, B = bala es más fácil de recordar.

  1. Dé al eje y local la dirección de viaje del asteroide j ^ = mi A
  2. El plano normal es por lo tanto k ^ = norte o r metro a yo i z mi d ( mi A × ( r B r A ) ) , dónde × es producto vectorial vectorial.
  3. El eje x local es i = norte o r metro a yo i z mi d ( mi A × k ^ ) , dónde norte o r metro a yo i mi d ( ) es la normalización vectorial (la magnitud es igual a uno). Este vector es perpendicular a la trayectoria del asteroide y apunta lejos de la nave espacial.
  4. La distancia perpendicular de la nave a la trayectoria del asteroide es h = i ^ ( r A r B ) , dónde es el producto punto.
  5. La distancia paralela de la nave al asteroide es d = j ^ ( r A r B ) .
  6. El ángulo desconocido entre las trayectorias en el plano es θ dando lugar a las ecuaciones de intersección
    h = ( v B pecado θ ) t v A t + d = ( v B porque θ ) t
    para ser resuelto por t y θ
  7. La solución que obtuve fue
    t = d v A + v B 2 ( d 2 + h 2 ) h 2 v A 2 v B 2 v A 2
    θ = pecado 1 ( h v b t )
  8. La dirección de la bala es mi B = i ^ pecado θ + j ^ porque θ

Asteroide

Agregué un boceto para que el cálculo sea más claro (espero).

Suponga que dispara un número infinito de balas virtuales a cierta velocidad v en todas las direcciones posibles. En algún momento t en el futuro, estas balas virtuales reposarán sobre la superficie de una esfera con radio v t . Esta superficie esférica obviamente crece con el tiempo. Supongamos que en el momento t , el asteroide en movimiento cruza esta esfera. Esta intersección te dice dónde quieres disparar.

El barco está en el punto A en todo momento, y el asteroide está en el punto B inicialmente y se mueve con cierta velocidad V . El vector de desplazamiento de la nave al asteroide es B A + V t . denotar B A como d 0 tu ^ y V como V v ^ , la distancia entre la nave y el asteroide está dada por d ( t ) 2 = d 0 2 + 2 d 0 V tu ^ v ^ t + V 2 t 2 .

Dejar ϕ Sea el ángulo entre el vector de desplazamiento inicial de la nave espacial al asteroide y el vector de velocidad del asteroide. En términos de lo anterior, porque ϕ = tu ^ v ^ . Esto da una forma alternativa de expresar la distancia al asteroide: d ( t ) 2 = d 0 2 + 2 d 0 V porque ( ϕ ) t + V 2 t 2 .

Estamos buscando el punto en el tiempo donde esta distancia es igual a v 2 t 2 , dónde v es la velocidad a la que se dispara una bala desde la nave espacial. Esto da como resultado la ecuación cuadrática

( V 2 v 2 ) t 2 + 2 d 0 V porque ( ϕ ) t + d 0 2 = 0
Como es el caso con todas las ecuaciones cuadráticas, esto tiene dos soluciones:
t = d 0 V porque ϕ ± d 0 2 V 2 porque 2 ϕ d 0 2 ( V 2 v 2 ) V 2 v 2 = d 0 V 2 v 2 ( V porque ϕ ± v 2 V 2 ( 1 porque 2 ϕ ) )
No hay soluciones reales si el radical v 2 V 2 ( 1 porque 2 ϕ ) es negativo Las dos soluciones son idénticas (una raíz doble) si el radical es cero. Hay dos raíces reales distintas si el radical es positivo. No puedes chocar contra el asteroide si no hay soluciones reales o si ambas soluciones reales son negativas. Tenga en cuenta que una solución real negativa representa que el asteroide disparó una bala a su nave espacial en ese momento en el pasado, con esa bala golpeando su nave espacial en este momento.

Si hay una solución positiva t a la ecuación cuadrática de la expresión anterior, esto te dice dónde apuntar tu bala. Simplemente apunte al punto donde estará el asteroide en ese momento.


Lo anterior supone que el asteroide se mueve a una velocidad constante y la nave espacial está estacionaria. Eso representa un campo de asteroides en el espacio vacío, lejos de cualquier cuerpo gravitante. Los campos de asteroides son un efecto secundario de la formación de estrellas y la formación de un gran planeta (por ejemplo, Júpiter) que impide que esos asteroides formen un planeta. En otras palabras, los asteroides orbitan alrededor de una estrella y son perturbados por uno o más planetas jovianos. La solución de velocidad constante descrita anteriormente no se aplica. Si puede ignorar las perturbaciones de los planetas jovianos, esencialmente tiene el problema de Lambert, con restricciones adicionales. Este artículo de wikipedia resume el problema de Lambert. Este bonito y pequeño pdfdel Centro de Investigación de Astrodinámica de Colorado (CCAR) describe el algoritmo estándar para resolver el problema de Lambert.