Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-07-2009, 20:04   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 7
Flugbahnberechnung bis zum Ziel

Hallo,

ich sitze nun schon seit ein paar Tagen an einer Berechnung. Ich habe 2 Objekte (Meinetwegen 2 Panzer).

Ich will nun berechnen, wie die Flugbahn von Punkt A (Schießender Panzer) nach Punkt B (zu treffender Panzer) verläuft.

Eine Flugbahn ansich (ohne Ziel) hab ich hinbekommen incl. Erdanziehungskraft. Ich habe den Anfangsvektor einfach um den Geschwindigkeitsvektor erhöht (x,y) und dann einfach von y immer die Erdanziehung abgezogen.

Der Panzer soll aber selbst berechnen wie hoch das Rohr sein muss damit er trifft.

Meines Wissens benötige ich:

- Richtungsvektor
- Geschwindigkeitsvektor
- Vektor von Panzer 1
- Vektor von Panzer 2
- Erdanziehungskraft

Als ergebnis brauche ich ja nun den Winkel des Rohres, alpha


Bis jetzt hab ich folgende Gleichung:

n = Zeit oder Nummer des aktuellen Frames
h = Höhe über Boden
alpha = Abschusswinkel
v = geschwindigkeit
g = Erdanziehung

h(n) = n * tan(a) - g / v² * cos(a);



Mir raucht der Kopf Ich war (leider) nie auf dem Gymi -.-


Hat jemand Tipps? Lösungen? Ansätze?


vg
Marcel
codejumper ist offline   Mit Zitat antworten
Alt 16-07-2009, 21:14   #2 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 7
Ich hab da was gefunden.

Nur verstehe ich nicht was ich mit w1 und w2 dann anstellen muss *confused*


http://dl1.armed-assault.de/sonstiges/Artillerie.pdf
codejumper ist offline   Mit Zitat antworten
Alt 29-07-2009, 20:40   #3 (permalink)
hilft gerne...
 
Registriert seit: Feb 2007
Ort: Carlsberg
Beiträge: 416
Angenommen, die beiden Panzer befinden sich auf einer waagerechten Linie. Dann gilt für die Schussweite des Panzers
Code:
Weite = (v²/g)*sin(2*alpha)
Das hab ich meiner Formelsammlung entnommen. Umgestellt nach alpha ergibt das:
Code:
alpha = arcsin((Weite*g)/v²) / 2
Damit hättest du die Rohrerhöhung deines Panzers
__________________
MfG Jan

Meine 2 besten Freunde: Flash-Hilfe und die Foren-Suche =)
McMannus ist offline   Mit Zitat antworten
Alt 29-07-2009, 21:26   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 7
Nabend!

erstmal DANKE DANKE DANKE für eine Antwort *g*


Jetzt hab ich nur ein Problem:

PHP-Code:
var x:Number 10000;
var 
g:Number 9.81;
var 
v:Number 1000;
var 
asin:Number = (x*g) / (v*v);
var 
Math.asinMath.abs(asin) ) / 2;

trace("x: "+x);
trace("g: "+g);
trace("v: "+v);
trace("x*g: "+(x*g));
trace("v*v: "+(v*v));
trace("asin: "+asin);
trace("Math.asin: "+Math.asin(asin));

trace("Winkel: "+w); 
Gibt folgendes in Flash aus:

x: 10000
g: 9.81
v: 1000
x*g: 98100
v*v: 1000000
asin: 0.0981
Math.asin: 0.09825803135911922
Winkel: 0.04912901567955961


Sieht erstmal gut aus. Aber wenn ich betrachte, dass Eine Haubitze nun einen Winkel a la "ich schieß flach gerade raus" haben soll bei einer Entfernung von 10 km (x=10000 Meter) und einer Geschossgeschwindigkeit von 1000 km/h (Meisst liegt die um die 1000-1100 km/h) dann kommt mir das iwie ned koscher vor ^^

Hab ich vielleicht in meiner Unwissenheit noch einen Fehler gemacht?


vg
Marcel

Und NOCHMAL DANKE Das is eigentlich schon zum Feiern xD


EDIT:

Was mir gerade aufgefallen ist. Ich muss ja die 1000 km/h auf meter runterrechnen oder?

Wären dann ja 278 Meter/Sekunde. Und dann kommt das raus:

x: 10000
g: 9.81
v: 278
x*g: 98100
v*v: 77284
asin: 1.2693442368407433
Math.asin: NaN
Winkel: NaN





Edit2: Ich hab irgendwie auch das Gefühl, dass das Gewicht u.u fehlt? Oder kann man das erstmal vernachlässigen und später mit einfügen? Windwiderstand ist mir ehrlichgesagt erstmal latte

Geändert von codejumper (29-07-2009 um 21:32 Uhr)
codejumper ist offline   Mit Zitat antworten
Alt 29-07-2009, 22:04   #5 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Gewicht macht nur Sinn mit Luftwiederstand, und andersrum (was fällt schneller im Vakuum, eine Feder, oder eine Bleikugel? )

Könnte es vielleicht sein, dass man mit einer Abschussgeschwindigkeit von 1000km/h keine 10km weit schießen kann?
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 30-07-2009, 11:56   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 7
@Luftwiderstand: Stimmt natürlich!

@KM: Eine Haubitze hat meist Ziele ab 5km entfernung bis (meines Wissens) 80 km Entfernung. Aber selbst bei 50km erhöht sich der winkel um 0.xxx
codejumper ist offline   Mit Zitat antworten
Alt 30-07-2009, 17:43   #7 (permalink)
hilft gerne...
 
Registriert seit: Feb 2007
Ort: Carlsberg
Beiträge: 416
/Offtopic

Da ich mich zur Zeit bei einer Artillerie-Einheit befinde die mit der PzH 2000 schießt (im Moment das modernste Geschütz der Welt), kann ich dir ein paar Infos geben. Sie schießt mit reichweitengesteigerter Munition 40km. Mehr geht nicht. Für die 40km brauch sie ca 1,5 min. Daraus kannst du dir die Geschwindigkeit errechnen: 40000/90 = 444 m/s
__________________
MfG Jan

Meine 2 besten Freunde: Flash-Hilfe und die Foren-Suche =)
McMannus ist offline   Mit Zitat antworten
Alt 30-07-2009, 18:34   #8 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 7
Zitat:
Zitat von McMannus Beitrag anzeigen
/Offtopic

Da ich mich zur Zeit bei einer Artillerie-Einheit befinde die mit der PzH 2000 schießt (im Moment das modernste Geschütz der Welt), kann ich dir ein paar Infos geben. Sie schießt mit reichweitengesteigerter Munition 40km. Mehr geht nicht. Für die 40km brauch sie ca 1,5 min. Daraus kannst du dir die Geschwindigkeit errechnen: 40000/90 = 444 m/s
Warum Offtopic? Ich finde das gehört schon dazu Danke dir



Aber selbst bei 444 m/s kommt das dabei raus:


x: 10000
g: 9.81
v: 444
x*g: 98100
v*v: 197136
asin: 0.49762600438276117
Math.asin: 0.5208596839752295
Winkel (Math.asin( (x*g) / (v*v) ) / 2): 0.26042984198761476


Ich weiss nicht so recht ob die Formel stimmt ^^ (außer ich muss noch mal hundert rechnen xD
codejumper ist offline   Mit Zitat antworten
Alt 30-07-2009, 23:09   #9 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Für Winkel im Gradmaß musst du noch * 180 / PI rechnen.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 01-08-2009, 10:15   #10 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 7
var w = Math.asin( (Math.abs(x)*g) / (v*v) ) / 2 * 180 / Math.PI;


Japp, das schaut schonmal sehr gut aus, Danke!

Ganz sicher bin ich mir aber erst, wenn die Kugel nun auch einschlägt *g* Danke euch erstmal, sobald sie fliegt und trifft, stell ich hier den link rein.


vg
Marcel
codejumper ist offline   Mit Zitat antworten
Alt 02-08-2009, 13:25   #11 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 7
Moin!


Ich bin nun dazugekommen das ganze zu testen.

Anfangs hatte ich noch Probleme die Flugbahn zu berechnen. Bis ich draufgekommen bin, dass ich auch dort die Problematik mit RAD und GRAD habe


Erstmal nochmal vielen Dank an die Helferlein. Nun versteh ich zwar noch nicht alles, aber mir leuchtet doch so einiges mehr ein.


Hier könnt ihr sehen das diese Formel nun funktioniert, auch wenn die Animation noch lange nicht annähernd perfekt oder gut ist.


Demo


vg
Marcel
codejumper ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele