J'ai un navire qui se déplace à vitesse maximale maxSpeed
et peut tourner à des rotationSpeed
degrés par seconde. Le navire se déplace toujours dans la direction à laquelle il fait face, ce qui signifie que plus le navire se déplace rapidement, plus son rayon de braquage est grand.
Je connais ma position, ma rotation et la position de la cible.
Ce que je voudrais savoir, c'est si une cible se trouve à l'intérieur de mon rayon de braquage à cette vitesse, ou mieux, quelle est la vitesse maximale à laquelle je peux voyager pour effectuer le virage vers la cible sans tourner continuellement autour d'elle.
Existe-t-il un moyen (ish) efficace de le faire?
Voici ce que je pense jusqu'à présent: parce que je sais jusqu'où je vais par pas et combien je tourne par pas, je peux savoir où je serai dans les deux prochaines images. Ma position actuelle est p1, ma position suivante est p2 puis p3. Je peux prendre les bissectrices perpendiculaires de (p1, p2) et (p2, p3). Leur point d'intersection me donnera le centre d'un cercle. Je peux ensuite tester si la cible se trouve dans ce cercle.
Je ne sais pas si cela fonctionnera en 3D (je ne sais pas comment calculer une sphère avec mes entrées). Cette solution n'aide pas non plus trop à trouver la bonne vitesse à laquelle voyager, je devrais essayer plusieurs fois avec des vitesses différentes pour en trouver une raisonnable.
Quelqu'un peut-il nous éclairer sur une meilleure solution?
la source