schräger wurf

für ein kleines spiel brauch ich mal die formel für einen schrägen wurf, allerdings soll auch noch eine variable windgeschwindigkeit mit einbezogen werden, quasi so wie in den spielen „tank wars“ oder „worms“.

btw.: wo gibts brauchbare formelsammlungen im netz?

http://www.tapu.de

Hallo Björn.

Ich hoffe, du brauchst das Ganze nur in 2 Dimensionen, dann ist es nicht so viel Schreibarbeit.

Nach unten wirkt die Gewichtskraft G=m*g=m*9.81 N/kg.
m ist die Masse des geworfenen Gegenstandes (in kg).
Zur Seite wirkt die Windkraft W (positiv oder negativ, je nach Windrichtung), der Einfachheit halber immer genau waagrecht und zeitlich konstant. Auch der Luftwiderstand ist nicht berücksichtigt. Wie groß du W wählen mußt, damit realistische Flugbahnen rauskommen, mußt du halt ausprobieren.

Die Differentialgleichungen für die Bewegung in x- und y-Richtung sind zum Glück unabhängig voneinander. Damit kriegst du

d^2/dt^2 x = W
d^2/dt^2 y = -G (Minus, weil Gravitation immer nach unten wirkt)

d^2/dt^2 ist die zweite Ableitung von x bzw. y

Wenn man das löst, erhält man

x(t) = x0 + u0*t + 1/2*W*t^2 (1)
y(t) = y0 + v0*t - 1/2*G*t^2 (2)

X0 und y0 sind die Koordinaten des Startpunktes
u0 und v0 sind die Anfangsgeschwindigkeiten in x- bzw. y-Richtung

Das liefert dir dann zu jedem Zeitpunkt t (in Sekunden) die x- und y-Koordinaten (in Meter)

Vielleicht brauchst du aber eine Darstellung y(x), also Höhe in Abhängigkeit von der bereits zurückgelegten Strecke. Dann mußt du (1) nach t auflösen und in (2) einsetzen:

(1) =: t = { u0 - sqrt [u0^2-2\*W\*(x-x0)] } / W (3)

sqrt ist die Quadratwurzel.
Du mußt aber beachten, daß der Wind so stark sein könnte, daß deine Kanonenkugel wieder zurückgeweht wird. Dann bekommst du hier arge Probleme.

Wie auch immer, du setzt in (3) das x ein, bekommt dein t und das kannst du dann in (2) reinsetzen und bekommst dein y.

Noch zum Schluß: wenn du keine Anfangsgeschwindigkeit in x- und y-Richtung gegeben hast sondern einen Geschwindigkeitsbetrag V und einen Abschußwinkel alpha relativ zur x-Achse, dann kannst du so umrechnen:

u0 = V * cos alpha
v0 = V * sin alpha

Die meisten Programmiersprachen verwenden das Bogenmaß (rad) für die Sinus und Cosinus-Funktion, deshalb die Umrechnung:

alpha [rad] = (pi / 180) * alpha [°]

hoffe, du kommst klar, sonst frag nach.

für ein kleines spiel brauch ich mal die
formel für einen schrägen wurf, allerdings
soll auch noch eine variable
windgeschwindigkeit mit einbezogen werden,
quasi so wie in den spielen „tank wars“
oder „worms“.

btw.: wo gibts brauchbare formelsammlungen
im netz?

Warum kauft du dir nicht ein Buch, das ist doch viel praktischer. Meine Empfehlung:

Horst Kuchling
Taschenbuch der Physik
Fachbuchverlag Leipzig im Carl Hanser-Verlag
ISBN 3-446-18692-1 Buch anschauen

Steht auch was zu deinem Problem drin.

Grüße und bobok
Semjon.

Hallo Semjon,

vielen Dank für Deine ausführliche Antwort, du hast mir damit wirklich weitergeholfen. Sobald das Spiel online ist, werde ich Dir mal bescheid sagen. Bis dahin alles gute.

BTW.: ich hab zwar auch physik-bücher, ich glaub sogar, dass von dir genannte, aber nach dem studium liegen die bücher noch in irgendwelchen umzugkartons. :wink:

Björn Puls
http://www.tapu.de

Hallo Björn,

das ganze läßt mir noch keine Ruhe.
Ich war mir wohl nicht ganz klar, daß die Annahme einer konstanten Windkraft (unabhängig von der Geschwindigkeit der Kugel) wirklich eine immense Vereinfachung darstellt. Mal angenommen, die Kanonenkugel fliegt mit Windgeschwindigkeit. Dann ist ja offensichtlich, daß gar keine Kraft wirkt.

Folgende Lösung ist besser:
Die Luft übt eine Kraft auf die Kugel aus, die proportional zur Relativgeschwindigkeit ist (Stokes’sches Gesetz)

Kraft in x-Richtung: q*(w-dx/dt)
Kraft in y-Richtung: -q*dy/dt-mg
w ist die Windgeschwindigkeit in x-Richtung
q der Proportionalitätsfaktor
dx/dt=u und dy/dt=v die Geschwindigkeitskomponenten der Kugel

Ich hoffe dich interessieren jetzt nicht die Differentialgleichungen und der Lösungsweg, aber am Schluß kommt heraus:

x(t) = x0+b(-1+exp(-t*q/m))+t*w
y(t) = y0+d(-1+exp(-t*q/m))-t*mg/q

die Konstanten b und d sind:
b=(w-u0)*m/q
d=-(mg/q+v0)*m/q

u0 und v0 sind die Anfangsgeschwindigkeiten in x- und y-Richtung.

Was bleibt ist noch q:
Das Stokessche Gesetz (für laminare Strömungen) lautet genau
F=6*pi*eta*r*V,
also ist das q von vorhin = 6*pi*eta*r
V ist die Geschwindigkeit
pi=3.1415…
eta=dynamische Viskosität (für Luft etwa 17.2 * 10^-6 N*s/m^2)
r=Radius der Kugel in m

Das schönste an der Sache ist: der Luftwiderstand ist automatisch schon drin!

Ich war leider nicht ganz ehrlich mit dem Stokesschen Gesetz, denn laminar ist die Strömung bei Kanonenkugelgeschwindigkeiten längst nicht mehr. Allerdings gibt es für turbulente Strömungen keine einfachen Zusammenhänge mehr.

Gruß Semjon.