Ich habe ein Schiff, das mit maximaler Geschwindigkeit fährt maxSpeed
und rotationSpeed
Grad pro Sekunde drehen kann . Das Schiff bewegt sich immer in die Richtung, in die es zeigt. Je schneller das Schiff fährt, desto größer ist sein Wenderadius.
Ich kenne meine Position, Rotation und die Position des Ziels.
Was ich herausfinden möchte, ist, ob sich ein Ziel mit dieser Geschwindigkeit innerhalb meines Wenderadius befindet oder besser, mit welcher Höchstgeschwindigkeit ich mich bewegen kann, um zum Ziel zu drehen, ohne es ständig zu umkreisen.
Gibt es einen effizienten (ish) Weg, dies zu tun?
Folgendes denke ich bisher: Da ich weiß, wie weit ich pro Schritt fahre und wie viel ich pro Schritt drehe, kann ich herausfinden, wo ich in den nächsten zwei Bildern sein werde. Meine aktuelle Position ist p1, meine nächste Position ist p2, dann p3. Ich kann die senkrechten Winkelhalbierenden von (p1, p2) und (p2, p3) nehmen. Ihr Schnittpunkt gibt mir den Mittelpunkt eines Kreises. Ich kann dann testen, ob sich das Ziel in diesem Kreis befindet.
Ich bin mir nicht sicher, ob dies in 3D funktioniert (ich bin mir nicht sicher, wie ich eine Kugel mit meinen Eingaben berechnen soll). Diese Lösung hilft auch nicht allzu viel bei der Suche nach der richtigen Reisegeschwindigkeit. Ich müsste ein paar Mal mit unterschiedlichen Geschwindigkeiten versuchen, um eine vernünftige zu finden.
Kann jemand etwas Licht auf eine bessere Lösung werfen?
quelle