Räumlicher schiefer Wurf

Hallo Leute!

Momentan versuche ich gerade in einem Programm zwei Komponenten für einen schiefen Wurf zu berechnen:
Die horizontale und die vertikale Anfangsgeschwindigkeit.

Was mir gegeben ist:
Das Objekt startet am Punkt (x1/y1/z1)
Das Objekt landet am Punkt (x2/y2/z2) (Beachte: z1 i.A. nicht gleich z2)
Die Parabel hat den Scheitelpunkt in (x3/y3/z3) (Dabei ist nur z3 vorgegeben)

Ich habe den Artikel bei Wikipedia jetzt sicher schon ein paar dutzend Mal durchgelesen, aber scheitere immer daran, dass ja der Anfang und das Ende nicht auf gleicher Höhe sind (z1 != z2).

Hat da jemand vielleicht einen kleinen Anstoss, welche Formeln ich ineinander verleimen kann?

Vielen Dank für jegliche Hilfe
Palandrion

Hallo,

eine kurze Frage dazu:
Gibt es weitere Randbedingungen?

Die Bewegung lässt sich ja zu jeder Zeit zwei Richtungen zerlegen: Eine vertikale, eine horizontale. Die horizontale verläuft zwar nicht entlang einer der Achsen, aber solange sie gleich bleibt (sprich: Kein Seitenwind kommt), kann man die zwei horizontalen Achsen in eine transformieren. Nach der Transformation würde dann wieder der einfache schiefe Wurf mit nur einer horizontalen Richtung gelten.

Viele Grüsse
d.

So was habe ich mal programmiert.
War aber nur ein einfaches Basicprogramm für Dos.

REM simmulationsprogramm für den Senkrechten wurf

px = 1 'das ist der startpunkt x

py = 50 'das ist der startpungt y

vx = 5 'das ist die geschwindikeit nach vorne

a = 1 'das ist die fallbeschleunigung

vyy = -10 'das ist die wurfgeschwindikeit nach oben.
 'Achtung dieser wert mus negativ angegeben werden!!!

SCREEN 1

FOR t = 1 TO 50
vy = a \* t + vyy
px = px + vx
py = py + vy


LINE (px, py)-(px, py)
NEXT

Achtung! Dieses Program funktioniert nicht unter Vista!
y wird vom oberen Teil des Bildschirms gezählt.

Wenn alles funktioniert sollte die Flugkurve erkenbar sein.

Hallo,

eine kurze Frage dazu:
Gibt es weitere Randbedingungen?
d.

Hallo d-punkt!

Ich erklärs am besten mal anhand dieses PDFs, nach dem ich mich momentan richte:
http://www.walter-fendt.de/phys/mech/wurf.pdf

Ich verwende die Gleichungen für W und h_max. Da sind die einzigen Unbekannten v_0 und alpha.

Ich habe diese beiden Gleichungen ein bisschen umgeformt und auf das gekommen:
tan(\alpha),=,\frac{2\cdot g\cdot (h_{m}-h_{0})\cdot (2\cdot g\cdot (h_{m}-h_{0})+\sqrt[2]{4\cdot g^{2}\cdot (h_{m}-h_{0})^{2}+2\cdot g\cdot h_{0}}}{W\cdot g}

Das berechnet Alpha wird dann einfach in die h_max Gleichung eingesetzt um v_0 zu berechnen und dann vz und vxy. Es funktioniert grundsätzlich nicht schlecht, nur ist es so, dass die z-Geschwindigkeit (v_0 * sin(alpha)) ist wahnsinnig gross und h_max wird auch nicht eingehalten, hingegen lande ich ziemlich zielgenau auf der Zielposition.

@bastler:
Dein Beispiel stellt die Wurfparabel unter allen gegebenen Umständen bei identischer Anfangs- und Endhöhe im 2D dar. Ich brauche gewisse Parameter, aber danke für die Hilfe.

Gruss
Palandrion

Ich hab beim Umrechnen eine Wurzel liegen lassen, das war das Problem. Mit dem folgenden Code geht die Berechnung einwandfrei von statten:

// vertical = distanz von abwurfpunkt zu scheitelpunk
// dist ist die Distanz von startpunkt zu Endpunkt
float dz = v-\>z - position-\>z;
float tmp = sqrtf(2 \* 9.80665f \* vertical);
float tana = tmp \* (tmp + sqrtf(2 \* 9.80665f \* vertical + 2 \* dz \* 9.80665f));
tana /= dist \* 9.80665f;
float alpha = atanf(tana);
float v0 = tmp / sinf(alpha);
float vxy = v0 \* cosf(alpha) \* sqrtf(2.0f);
float vz = v0 \* sinf(alpha) \* sqrtf(2.0f);