Tengo un barco que viaja a la velocidad máxima maxSpeed
y puede girar rotationSpeed
grados por segundo. El barco siempre se mueve en la dirección que está mirando, lo que significa que cuanto más rápido viaja, mayor es su radio de giro.
Sé mi posición, y la rotación y la posición del objetivo.
Lo que me gustaría saber es si un objetivo está dentro de mi radio de giro a esta velocidad, o mejor, cuál es la velocidad máxima a la que puedo viajar para poder girar hacia el objetivo sin girar continuamente alrededor de él.
¿Hay una manera eficiente (ish) de hacer esto?
Esto es lo que estoy pensando hasta ahora: como sé lo lejos que estoy viajando por paso y cuánto estoy girando por paso, puedo averiguar dónde estaré en los próximos dos cuadros. Mi posición actual es p1, mi próxima posición es p2 y luego p3. Puedo tomar las bisectrices perpendiculares de (p1, p2) y (p2, p3). Su punto de intersección me dará el centro de un círculo. Entonces puedo probar si el objetivo está en ese círculo.
No estoy seguro de si esto funcionará en 3D (no estoy seguro de cómo calcular una esfera con mis entradas). Esta solución tampoco ayuda demasiado a encontrar la velocidad correcta para viajar, tendría que intentarlo varias veces con diferentes velocidades para encontrar una razonable.
¿Alguien puede arrojar algo de luz sobre una mejor solución?
fuente