Partner von azubiworld.com - Logo
 
Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Treffpunkt zweier Flugkörper (Vorhalte-Berechnung)

Treffpunkt zweier Flugkörper (Vorhalte-Berechnung)

Universität / Fachhochschule

Tags: Abfangkurs, Torpedo, Vorhalterechner

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
Jinzen

Jinzen aktiv_icon

00:42 Uhr, 12.10.2017

Antworten
Hallo,
ich dachte mir ich melde mich mal an um eine brennende Frage loszuwerden. Vielleicht hat hier ja jemand Spaß an sowas:

Wir arbeiten grad mit ein paar Freunden an einem Hobby Computerspiel Projekt mit der Unreal Engine. Erstmal nichts weltbewegendes, in dem Spiel fliegt man ein Raumschiff und schießt auf andere Raumschiffe.

Jetzt habe ich mir in den Kopf gesetzt für nicht-zielsuchende Geschosse ein Vorhalte-Fadenkreuz anzubieten.

Dieses Fadenkreuz soll dort auf der derzeitigen Flugbahn des "KI"-gesteuerten Raumschiffes angezeigt werden wo man hinzielen muss damit sich Geschoss und Gegner-Raumschiff treffen.
Das eigene Geschoss hat eine feste Geschwindigkeit.

Zunächst dachte ich alles wär so einfach:

(Entfernung zum Ziel / Geschwindigkeit Geschoss) mal (Geschwindigkeit Ki-Schiff)
= Entfernung Zielpunkt zu Ki-schiff entlang der Flugrichtung des Ki-Schiffes

Also angenommen:
- Spieler-Geschoss fliegt 1000ms
- Ki-Schiff in 1000 meter Entfernung
- Ki-Schiff fliegt 100ms

(1000m1000ms)(100ms)=100m


Bei diesem einfachen Beispiel müsste der Spieler also 100 meter vor das gegnerische Raumschiff zielen um zu treffen.
So hab ich das dann mal in Unreal gescriptet und auf kurze Entfernung haut es auch gut hin, auf längere aber nur wenn die Entfernung von Spieler und Gegner weitestgehend gleich bleibt während das Geschoss fliegt. Da wurde mir klar, die Rechnung geht eigentlich nur auf wenn der Gegner einen perfekten Kreis um den Spieler fliegt, wie in Beispiel A.

Aber was ist wenn das Ki-Schiff schräg vom Spieler wegfliegt so wie in Beispiel B ?

Angenommen in Bild B ist das Ki-Schiff gerade 1000m entfernt, es bewegt sich immernoch mit 100ms. Wenn ich jetzt 100 meter entlang des Ki Flugvektors vorhalte und schieße wird das Ki-Schiff je nach Winkel bis zu 100 meter weiter entfernt sein als zum Zeitpunkt der Berechnung, also wär das Geschoss bis zu 0.1 Sekunden zu spät am Zielpunkt.. so wird das also nichts.

Dann dachte ich, ich nehm die Zeit die das Geschoss zum Vorhaltepunkt braucht, also mal angenommen c.a. 1070 meter, jetzt guck ich wie lange das Ki-Schiff in der Zeit in der das Geschoss 1070 meter fliegt zurücklegt, dadurch ist der Vorhaltepunkt aber wieder weiter vorne, jetzt berechne für den die Geschossgeschwindkeit.. und merke die Katze beißt sich selbst in den Schwanz.

Es gibt definitiv den einen Punkt auf dem Flugvektor auf den man Zielen muss damit sich Geschoss und Ki-Raumschiff treffen, aber gehe ich recht in der Annahme, dass dies eine Gleichung mit zwei unbekannten ist? "Die Entfernung dahin wo das Ki-Raumschiff sein wird"

Ich sehe mich derzeit vollkommen chancenlos dies zu lösen, deswegen hab ich erstmal "Bitte nur um Ergebnis" angekreuzt. Wäre aber sehr dankbar für ein paar Stichwörter, falls es eine gängige Methode zur Lösung derartiger Probleme gibt, und wie diese Methode heisst damit ich mich ggf. selber nochmal einlesen kann.

Nachtrag: den Vector3 ,also die Richtung, in die sich das Ki-Schiff vom Spieler wegbewegt kenne ich auch


Beispiel_A
Beispiel_B

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich benötige bitte nur das Ergebnis und keinen längeren Lösungsweg."
Antwort
maxsymca

maxsymca

11:59 Uhr, 12.10.2017

Antworten
Ich hab sowas mal mit Ubooten in GeoGebra gemacht - Vorhaltewinkel berechnen. UBoote bewegen sich in einer 2D-Welt, wenn sie Torpedos abschießen und der Schießer steht fix. Raumschiffe sollten sich ähnlich verhalten, wenn sie sich auf Geraden bewegen.
In meiner Vorstellung berechnest Du den ABstand Geschoß-Ziel in Abhängigkeit von der Zeit.
Damit erhälst Du eine Funktion f(t)=0 mit f'(t)=0 (minimaler Abstand) für einen Treffer. Also ungefähr so?
Ganz schwierig wird die Situation, wenn beide Schießer und Ziel sich im Raum bewegen.
Möcht ich nicht berechnen wollen....

Antwort
ledum

ledum aktiv_icon

16:31 Uhr, 12.10.2017

Antworten
Hallo
was genau ist bekannt? ich setze den Spieler nach (0,0)
ist dann bekannt: 1. r der Vektor zum momentanen Standort?
2. vi also Richtung und Größe der Geschwindigkeit des Feindes?
3. Betrag der Geschwindigkeit des Geschosses vg
dann hast du eine Einfache VektorGleichung
r+vit-vgt=0
dabei vg=vg(1,vg2-1)
Frage beantwortet
Jinzen

Jinzen aktiv_icon

08:27 Uhr, 13.10.2017

Antworten
vielen Dank!
Ja, die Größen wären alle bekannt.
Der obere Teil der Gleichung erscheint mir einleuchtend, nur das hier verstehe ich nicht auf Anhieb:
dabei vg=vg(1,vg21)
frage mich wieso 1, und müssten da nicht auch r und vi drin vorkommen?
Kriege ich aber vielleicht auch alleine raus, werd mich am Wochenende mal hinsetzen.