Calculer un vecteur pour viser le déplacement d’un astéroïde (jeu d’astéroïdes 3D)

Bradley

Calculer un vecteur pour viser le déplacement d’un astéroïde (jeu d’astéroïdes 3D)


Considérant que nous sommes dans un système de coordonnées 3D:

  1. notre vaisseau est au point A, immobile
  2. notre navire peut tirer des balles dont la vitesse est connue
  3. l’astéroïde est au point B
  4. l’astéroïde se déplace sur un vecteur connu avec une vitesse connue

Question : sur quel vecteur notre vaisseau a-t-il besoin de tirer sa balle, de sorte que l’astéroïde soit touché?

Ma tentative jusqu’à présent: trouver un point C tel que:

  1. distance (A, C) / speed_of (bullet) = distance (B, C) / speed_of (astéroïde)
  2. le point C est sur le vecteur connu de l’astéroïde

Et je suis coincé ici.

ja72

Le vaisseau ne bouge-t-il pas aussi, comme les astéroïdes originaux?

Bradley

@ ja72 Je voulais simplifier les choses.

BMS

Y a-t-il même une solution sans connaître la vitesse de la balle?

Réponses


 Anonymous

C’est un bon début, mais le point 2 peut être rendu un peu plus précis. Disons que l’astéroïde commence en

B0

au temps

0

et a une vitesse constante

B˙

. Puis sa position au temps

t

est

(1)B(t)=B0+tB˙.


Votre

C

est juste un certain point sur cette ligne, que nous saurions si seulement nous savions

thjet

, l’heure à laquelle la balle frappe l’astérode:

(2)C=B(thjet).

Mais comment trouver

thjet

? Eh bien, nous pouvons travailler sous la perspective de la balle, dont je vais indiquer la position avec

UNE(t)

(pas besoin de s’inquiéter pour le navire, car il ne bouge pas). Comme auparavant, nous avons

(3)UNE(t)=UNE0+tUNE˙,


sauf ici

UNE˙

est une constante vectorielle inconnue. En fait, ce n’est pas entièrement inconnu, car il doit satisfaire

(4)v2=UNE˙UNE˙=UNE˙X2+UNE˙y2+UNE˙z2,


v

est la vitesse de balle fixe. Maintenant, le point d’impact doit se produire le long de la trajectoire de la balle, et après le même temps écoulé:

(5)C=UNE(thjet).

Les équations (1), (2), (3) et (5) se combinent pour former

(6)B0+thjetB˙=UNE0+thjetUNE˙.


Alors (4) et (6) forment un système de 4 équations scalaires à 4 inconnues (

thjet

,

UNE˙X

,

UNE˙y

et

UNE˙z

) et peut donc être résolu de manière unique.

(En fait, il peut y avoir deux ou zéro solutions, selon les valeurs réelles. Les solutions nulles signifient que votre balle est trop lente pour jamais rattraper le retard. Deux solutions signifient probablement qu’une correspond à négatif

thjet

, comme si la balle était passée de l’astéroïde dans le passé au navire dans le présent. Bien que cela puisse également signifier qu’il y a deux chances de toucher l’astéroïde.)


Pour un navire en mouvement, la vitesse de votre balle dans ces coordonnées,

UNE˙bullet

, est donnée par la somme de la vitesse connue du navire lorsque la balle est tirée, disons

UNE˙shjep

, et la vitesse à trouver de la balle par rapport au navire,

UNE˙relunetjeve

. Pour travailler avec cela, il suffit de résoudre pour

UNE˙bullet

(alias

UNE˙

) comme ci-dessus, puis calculez

UNE˙relunetjeve=UNE˙bulletUNE˙shjep.

Bradley

Merci pour la réponse, mais je ne comprends pas d’où vient l’équation (4) (algèbre linéaire?) Ce n’est pas vraiment des devoirs – et j’apprécierais donc beaucoup si vous pouviez me dire quoi d’autre, en plus de la physique classique, dois-je apprendre pour bien comprendre votre solution (et éventuellement la modifier pour tenir compte d’un navire en mouvement)?

fibonatique

noter également que


 ja72

Vous devez transformer cela en un problème 2D. Pour trouver 3 vecteurs unitaires décrivant un système de coordonnées 3D local où le problème planaire est le long du local

je^

et

j^

axes, avec le plan perpendiculaire

k^

. L’indice A désigne l’astéroïde et B la balle, avec

r

positions,

e

directions et

v

vitesses. La notation est inverse de l’OP car A = astéroïde, B = balle est plus facile à retenir.

  1. Donner à l’ axe y local le sens de déplacement de l’astéroïde
  2. Le plan normal est donc
  3. L’ axe des x local est
  4. La distance perpendiculaire du navire à la trajectoire des astéroïdes est
  5. La distance parallèle du navire à l’astéroïde est
  6. L’angle inconnu entre les trajectoires dans l’avion est
  7. La solution que j’ai obtenue était
  8. La direction de la balle est

Astéroïde

ja72

J’ai ajouté un croquis afin de rendre le calcul plus clair (j’espère).


 David Hammen

Supposons que vous tiriez un nombre infini de balles virtuelles à une certaine vitesse

v

dans toutes les directions possibles. À un certain moment

t

à l’avenir, ces balles virtuelles se trouveront à la surface d’une sphère de rayon

vt

. Cette surface sphérique croît évidemment avec le temps. Supposons qu’au temps

t

, l’astéroïde en mouvement traverse cette sphère. Cette intersection vous indique où vous souhaitez tirer.

Le navire est au point

UNE

en tout temps, et l’astéroïde est au point

B

initialement et se déplace avec une certaine vitesse

V

. Le vecteur de déplacement du vaisseau vers l’astéroïde est

BUNE+Vt

. Désignant

BUNE

comme

0u^

et

V

comme

Vv^

, la distance entre le vaisseau et l’astéroïde est donnée par

(t)2=02+20Vu^v^t+V2t2

.

Soit

ϕ

être l’angle entre le vecteur de déplacement initial du vaisseau spatial à l’astéroïde et le vecteur de vitesse de l’astéroïde. En termes de ce qui précède,

cosϕ=u^v^

. Cela donne une autre façon d’exprimer la distance à l’astéroïde:

(t)2=02+20Vcos(ϕ)t+V2t2

.

Nous recherchons le point dans le temps où cette distance est égale à

v2t2

, où

v

est la vitesse à laquelle une balle est tirée du vaisseau spatial. Il en résulte l’équation quadratique

(V2v2)t2+20Vcos(ϕ)t+02=0


Comme c’est le cas avec toutes les équations quadratiques, cela a deux solutions:

t=0Vcosϕ±02V2cos2ϕ02(V2v2)V2v2=0V2v2(Vcosϕ±v2V2(1cos2ϕ))


Il n’y a pas de vraies solutions si le radical

v2V2(1cos2ϕ)

est négatif. Les deux solutions sont identiques (une double racine) si le radical est nul. Il y a deux racines réelles distinctes si le radical est positif. Vous ne pouvez pas toucher l’astéroïde s’il n’y a pas de vraies solutions ou si les deux vraies solutions sont négatives. Notez qu’une vraie solution négative représente l’astéroïde qui a tiré une balle sur votre vaisseau spatial à ce moment-là dans le passé, cette balle frappant votre vaisseau spatial en ce moment.

S’il existe une solution positive

t

à l’équation quadratique ci-dessus, cela vous indique où viser votre balle. Visez simplement le point où l’astéroïde sera à ce moment-là.


Ce qui précède suppose que l’astéroïde se déplace à une vitesse constante et que l’engin spatial est immobile. Cela représente un champ d’astéroïdes dans un espace vide, loin de tout corps gravitationnel. Les champs d’astéroïdes sont un effet secondaire de la formation d’étoiles et de la formation d’une grande planète (par exemple Jupiter) qui empêche ces astéroïdes eux-mêmes de former une planète. En d’autres termes, les astéroïdes tournent autour d’une étoile et sont perturbés par une ou plusieurs planètes joviennes. La solution à vitesse constante décrite ci-dessus ne s’applique pas. Si vous pouvez ignorer les perturbations des planètes joviennes, vous avez essentiellement le problème de Lambert, avec des contraintes supplémentaires. Cet article de wikipedia résume le problème de Lambert. Ce joli petit pdf du Colorado Center for Astrodynamics Research (CCAR) décrit l’algorithme standard pour résoudre le problème de Lambert.

 

#pour, 3D, astéroïde, calculer, d’astéroïdes?, d’un, déplacement, Jeu, Le, un, Vecteur, viser

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *