schieße Projektil (gerade Flugbahn) auf bewegliches Ziel in 3 Dimensionen

8

Ich habe bereits nach dem Problem gegoogelt, aber nur 2D-Lösungen oder Formeln gefunden, die für mich nicht funktionierten (fand diese Formel, die gut aussieht: Ссылка scheint aber nicht korrekt zu sein.

Ich habe gegeben:

%Vor%

was ich suche ist Zeit t so dass

%Vor%

ist der Schnittpunkt, auf den die Kanone zielen und schießen soll.

Ich suche nach einer einfachen, kostengünstigen Formel für t (mit simple meine ich einfach nicht viele unnötige vectorspace Transformationen und ähnliches)

Danke!

    
Mat 20.01.2011, 16:44
quelle

1 Antwort

15

Das wahre Problem ist herauszufinden, wo im Raum der Geschoss den Zielpfad schneiden kann. Die Geschossgeschwindigkeit ist konstant, so dass sie in einer bestimmten Zeit die gleiche Strecke zurücklegt, egal in welcher Richtung wir sie abfeuern. Dies bedeutet, dass seine Position nach der Zeit t immer auf einer Kugel liegt. Hier ist eine hässliche Illustration in 2d:

Diese Kugel kann mathematisch ausgedrückt werden als:

%Vor%

x_b0, y_b0 und z_b0 bezeichnen die Position der Kanone. Sie können die Zeit t finden, indem Sie diese Gleichung für t mithilfe der Gleichung in Ihrer Frage lösen:

%Vor%

(eq 2) ist eine Vektorgleichung und kann in drei separate Gleichungen zerlegt werden:

%Vor%

Diese drei Gleichungen können in (eq 1) eingefügt werden:

%Vor%

Diese Gleichung enthält nur bekannte Variablen und kann für t gelöst werden. Indem wir Konstanten den konstanten Teil der quadratischen Teilausdrücke zuweisen, können wir die Berechnung vereinfachen:

%Vor%

Ordne es als quadratische Standardgleichung um:

%Vor%

Dies ist mit der Standardformel leicht lösbar. Es kann zu null, einer oder zwei Lösungen führen. Zero-Lösungen (ohne komplexe Lösungen) bedeutet, dass die Kugel das Ziel nicht erreichen kann. Eine Lösung wird wahrscheinlich nur sehr selten auftreten, wenn die Zieltrajektorie den Rand der Kugel schneidet. Zwei Lösungen werden das häufigste Szenario sein. Eine negative Lösung bedeutet, dass Sie das Ziel nicht treffen können, da Sie die Kugel in die Vergangenheit schießen müssen. Dies sind alles Bedingungen, nach denen Sie suchen müssen.

Wenn Sie die Gleichung gelöst haben, können Sie die Position von t finden, indem Sie sie wieder in (eq 2) setzen. Im Pseudocode:

%Vor%     
Emil H 20.01.2011 17:01
quelle

Tags und Links