es geht darum, den Schuss eines langsamen Geschosses in Laufrichtung vorherzuberechnen.
Das ganze findet hierbei in 2D statt, die Z-Koordinate wird nicht gebraucht.
Nochmal kurz zu was passieren soll:
Ich will, dass ein Geschoss vom Punkt S1X/S1Y abgefeuert wird, sodass er sein Ziel trifft, sofern es sich geradlinig voranbewegt.
Die Koordinaten des Ziels sind hierbei S2X/S2Y. Weiterhin bewegt es sich mit M2X/M2Y pro Zeiteinheit vorwärts.
Bekannt ist mir noch die Geschwindigkeit des Geschosses, V.
(M1X/M1Y) ist der Flugvektor des Geschosses. Der ist natürlich unbekannt.
So wie ich es versucht habe klappt es einfach nicht.
Meine Überlegunugen:
i) (S1X-S2X)+ time*(M1X-M2X) = 0 //Nach einer gewissen Zeit t, befinden sie sich auf der selben X-Koordinate
ii) (S1Y-S2Y)+ time*(M1Y-M2Y) = 0 //selbiges mit y
iii) M1X^2+M1Y^2 = V^2 //Logisch
-> aus iii) wird M1X = Wurzel(M1Y^2-V^2)
Ich benutze verschiedene temp-Variablen um mir das ganze übersichtlicher und nicht ellenlang zu gestalten.
Diese beginnen mit R und sind durchnumeriert (R1, R2, usw.)
R1 := S1X-S2X
R2 := S1Y-S2Y
i) ergibt nach time aufgelöst -(S1X-S2X)/(M1X-M2X) = time
ii) wird ebenso umgeformt.
Dann werden i) und ii) gleichgesetzt, sowie M1X ersetzt (siehe iii))
Ich erhalte:
R1/(W-M2X) = R2/(M1Y-M2Y) // W steht für die Wurzelkonstruktion aus iii)
Daraus wird:
R1*M1Y-R1*M2Y=R2*W-R2*M2X
Ich setze R3 := R2*M2X- R1*M2Y
Dann bleibt R1*M1Y + R3 = R2*W
Jetzt quadriere ich zu:
R1^2*M1Y^2+2*R1*M1Y*R3+R3^2 = R2^2*M1Y^2 - R2^2*V^2
Damit ich die "Mitternachtsformel" anwenden kann, wird weiter umgeformt:
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hi,
ich hab zwar verstanden worum es geht, aber ich weiß grad nich was du eig. berechnen willst...
Also was genau willst du am ende raus haben, dann kann ich dir vlt helfen.
Ich habe zwei Einheiten.
Die eine (A) läuft, die andere (B) schiest.
Das Geschoss fliegt geradlinig.
B soll nun so schiessen, dass er A trifft, sofern A geradeaus weiterläuft.
Dazu will ich berechnen in welche Richtung B schiesen muss.
Problematisch ist halt, dass A sich bewegt und von dem her der Kollisionszeitpunkt nicht einfach Weg / Geschwindigkeit ist.
Naja, dass was du aufgeschrieben hast entspricht bei mir i) und ii)
Das Problem dabei ist, dass ich weder den Vektor M1 NOCH die Zeit t kenne.
Ich kenne lediglich das Verhältnis der Teile M1X und M1Y des Vektors M1.
Aber die Gleichung mithilfe derer zu lösen gelingt mir leider nicht.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wieso kennst du denn weder die Geschwindigkeit noch die Schussrichtung? Letztere ist klar - die willst du ja berechnen.
Aber wieso kennst du nicht t? Weißt du wie schnell das Geschoss ist?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Whitehunter ging von einem direkten Wegrennen vom Geschoss aus, wobei jedoch die Richtung des Vektors M2 mit einberechnet werden muss.
Ich habe jetzt gerade dein neue Post gesehen dj3hut1.
Danke für die viele Rechenarbeit.
Ich schau mir das ganze gleich an und editier dann rein, ob es so klappt.
€: Hmmm, muss auch irgendwo ein Fehler drin sein.
Es führt lediglich zu einem rumgeschiesse in der Landschaft t.t
Ich versuch jetzt auch mal das ganze nacht t, statt wie bisher nach M1Y bzw M1X zuerst aufzulösen.
Vielleicht wird ja was draus.
€€: Ich lese gerade, dass Whitehunter auch das gleiche raus hat wie du.
Das brachte mich zum nochmal nachlesen: habe ausversehen die t = -c/b genommen
Neuer Versuch.
Zuletzt geändert von Mortal-Shadow am Sa Aug 29, 2009 19:32, insgesamt 3-mal geändert.
Registriert: Mo Sep 02, 2002 15:41 Beiträge: 867 Wohnort: nahe Stuttgart
dj3hut1 hat geschrieben:
@WhiteHunter die Auflösung nach t ist glaub ich nicht ganz so einfach...
Richtig. Sorry, mir kam die ganze Zeit noch was komisch vor, aber erst jetzt fällt mir auf, dass ich da ja die binomischen Klammern übersehen hab.
Habs nochmal nachgerechnet und komme jetzt natürlich auch auf dein Ergebnis.
Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.