Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Mai 28, 2024 20:45

Foren-Übersicht » Programmierung » Mathematik-Forum
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Schuss in Laufrichtung
BeitragVerfasst: Sa Aug 29, 2009 12:45 
Offline
DGL Member

Registriert: Mo Mai 25, 2009 21:29
Beiträge: 30
Hi,

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:

M1Y^2 + M1Y * 2*R1*R3/(R1^2-R2^2) + (R3^2+R2^2*V^2) / (R1^2-R2^2) = 0

Ich setze
R4 := 2*R1*R3/(R1^2-R2^2)
R4 := R4/(-2)
R5 := (R3^2+R2^2*V^2) / (R1^2-R2^2)

Jetzt kann ich sogenannte Mitternachtsformel anwenden, wodurch sich ergibt:

M1Y = R4 +- Wurzel(R4^2-R5)
Beide Lösungen sind dabei leider kompletter non-sense.

Habe ich einen Rechenfehler gemacht?
Habe ich einen Denkfehler gemacht?
Oder gibt es da vielleicht schon eine Lösung von irgendwem?

Ich würde mich über Hilfe sehr freuen.

Mfg.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 29, 2009 15:32 
Offline
DGL Member
Benutzeravatar

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.

MfG Bergmann

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 29, 2009 15:45 
Offline
DGL Member

Registriert: Mo Mai 25, 2009 21:29
Beiträge: 30
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 29, 2009 16:42 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo Mortal-Shadow,

die Position nach Zeit t für das Geschoß ist S1 + t*M1, und für das Ziel S2 + t*M2 ( wobei S1 = (S1X/S1Y) usw. ).

Nach Gleichsetzung und Umstellung ergibt sich : M1 = ( S2 - S1 ) / t + M2

Falls nun eine Geschwindigkeit V vorgegeben ist muss gelten : | M1 | = V

==> ( (S2X - S1X ) / t + M2X ) ^ 2 + ( (S2Y - S1Y ) / t + M2Y ) ^ 2 = V^2

Die Formel nach t umgestellt und oben eingesetzt müsste die gesuchte Richtung M1 ergeben...

Viele Grüße
dj3hut1

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


Zuletzt geändert von dj3hut1 am Sa Aug 29, 2009 16:55, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 29, 2009 16:52 
Offline
DGL Member

Registriert: Mo Mai 25, 2009 21:29
Beiträge: 30
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 29, 2009 17:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Mortal-Shadow hat geschrieben:
Das Problem dabei ist, dass ich weder den Vektor M1 NOCH die Zeit t kenne.

dj3hut1 hat geschrieben:
==> ( (S2X - S1X ) / t + M2X ) ^ 2 + ( (S2Y - S1Y ) / t + M2Y ) ^ 2 = V^2

Die Formel nach t umgestellt und oben eingesetzt müsste die gesuchte Richtung M1 ergeben...

Ich denke, damit wollte dj3hut1 sagen, dass sich t so ohne Abhängigkeit von M1 oder t berechnen lässt:

t² = |S1S2|² / ( V² - |M2|² )

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 29, 2009 17:45 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 29, 2009 18:16 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
@WhiteHunter

die Auflösung nach t ist glaub ich nicht ganz so einfach...


ich komme auf die Gleichung : t^2 + ( b / a ) * t + ( c / a ) = 0

mit a = | M2 |^2 - V^2
b = ( ( S2X - S1X ) * M2X + ( S2Y - S1Y ) * M2Y ) * 2
c = | S2 - S1 | ^ 2

( falls | M2 |^2 != V^2 )

also t = -b / ( a * 2 ) +- Wurzel( ( b / a )^2 / 4 - ( c / a ) )


Wenn | M2 |^2 = V^2 gilt:

t = - c / b


Falls zusätzlich b noch 0 ist gibt es keine Lösung.


Viele Grüße
dj3hut1

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 29, 2009 18:59 
Offline
DGL Member

Registriert: Mo Mai 25, 2009 21:29
Beiträge: 30
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 :P
Neuer Versuch.


Zuletzt geändert von Mortal-Shadow am Sa Aug 29, 2009 19:32, insgesamt 3-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 29, 2009 19:22 
Offline
DGL Member
Benutzeravatar

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. :roll:
Habs nochmal nachgerechnet und komme jetzt natürlich auch auf dein Ergebnis.

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 29, 2009 19:39 
Offline
DGL Member

Registriert: Mo Mai 25, 2009 21:29
Beiträge: 30
Vielen Dank.

Soeben ausprobiert und es klappt wunderbar :D .

Mfg.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Foren-Übersicht » Programmierung » Mathematik-Forum


Wer ist online?

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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.022s | 14 Queries | GZIP : On ]