Flugbahn eines Basketballs

Hallo!
Ich wollte eine kleine Baskteball simulation schreiben, (nicht mit java, aber ist ja auch egal) stehe aber gerade auf dem schlauch.
Folgendes habe ich als Idee:

User Input:

-“stärke” des abwurfs
-winkel des abwurfs

feste werte:

-abwurfpunkt

Zeichnung:

So. Nun muss ich ja aus diesen beiden infos, stärke und winkel eine flugparabelgleichung berechnen…
aber wie schaff ich das?? Kann mir einer einen kleinen denkanstoss geben?

Ich habe bereits hier geguckt, aber da wird der scheitelpunkt ja vorgegeben…

Vielen Dank!

Da solltest du fündig werden:
http://www.frustfrei-lernen.de/mechanik/schraeger-wurf.html

EDIT:
Alternativ, wenn du die Kurve nicht berechnen sondern einfach nur “den Ball fliegen lassen willst”, dann kannst du das folgendermaßen machen:
Dein Ball startet im Punkt x mit Geschwindigkeitsvektor v. Pro Zeiteinheit delta_t (je kleiner desto genauer die Flugbahn) berechnest du dann folgende zwei Dinge: Neue Position des Balls, neuer Geschwindigkeitsvektor. Das kannst du dann solange machen bis der Ball auf dem Boden ist.

Ich würde “Stärke” dann intern mit der Geschwindigkeit gleichsetzen. 100% Stärke = höchste (sinnvolle) Geschwindigkeit (hab gerade was von 30-40km/h beim Basketball gelesen).
Den Abbildungspunkt im zweidimensionalen Raum kannst du mit t berechnen und dann ausgehend vom Abwurfpunkt anzeigen lassen.

Die Formeln für Alles findest du hier:
http://www.formel-sammlung.de/formel-Wuerfe-3-26-131.html

Hm Danke Leute!

aber ich komm trozdem nicht ganz weiter:

Ich habe wie in connys link beschrieben mal versucht diese parabel in geogebra umzusetzen.

Aber irgendwie
heisst es dort bei 2 Grad abwurf und start geschwindigkeit 1, das mein ball nach hinten fliegt :smiley:

naja, im anhang das geogebra projekt.

Wär echt cool wenn einer den fehler findet!

geogebra kenne ich nicht, aber die Formel schaut gut aus:
http://www.wolframalpha.com/input/?i=y%3Dtan(45)x-%289.81%2F%282100cos%2845%29cos%2845%29%29xx
(v = 10m/s, alpha = 45°)

Ich komm mit dem Anhang nicht so klar (find keinen Code auf Anhieb).
Aber unabhängig davon ist ein beliebter Fehler bei Würfen, dass man für den gesamten Wurf die Steigzeit * 2 nehmen muss, um die gesamte Wurfzeit zu erfahren. Ggf. kommt daher schon der Fehler.
Bzw. woher hast du sonst (falls nicht mit der Steigzeit) x genommen?

Ich denke, die von EikeB angedeutete Alternative sollte man noch etwas hervorheben: Geht es darum, die Wurfparabel zu zeichnen, oder darum, die Flugbahn zu simulieren? Das sind zwei völlig verschiedene Dinge. Wenn man mit den verlinkten Formeln zu „schiefem Wurf“ etwas einfach irgendwas zeichnen will, dann kann man die Flugbahn einfach so als Parabel zeichnen, bzw. für jeden beliebigen Zeitpunkt ausrechnen, wo sich der Ball gerade befindet. Wenn man die Flugbahn simulieren will, muss man aus den Informationen, die am Anfang vorliegen (Position und Abwurfgeschwindigkeit) berechnen, wie sich der Systemzustand im Lauf der Zeit ändert.

Um das nochmal zu betonen: Wenn du z.B. willst, dass der Ball von dieser „Wand“ (um den Korb rum) abprallen kann, dann wäre es nur praktikabel, das ganze zu simulieren, weil die Flugbahn nach dem (ggf. mehrfachen) Abprallen kaum vernünftig „in geschlossener Form“ berechnet werden kann.

Und… wie schnell man etwas werfen kann? Einen Baseball ziemlich schnell: http://what-if.xkcd.com/44/ :smiley:

Was spricht dagegen, dass ganze einfach mit Vektoren zu Simulieren. In Schritten von t = 1/10 Sekunden. Änlich EikeB’s Vorschlag.

Startpunkt ist (0;0)

Abwurf geht nach (10;10), also 10 nach vorn und 10 nach unten innerhalb von einer Zeiteinheit t.

Dagegen wirkt die schwerkraft von knapp 10m pro Sekunde senkrecht nach unten. Also für t dann z.B. (0;-1).

Sowie ein Luftwiderstand von 10%. Sind ja nicht im Luftleeren Raum.

Dann ergibt dass für mich z.B.
[PYTHON]anfangszustand = (0,0)
abwurf = (10,10)
schwerkraft = (0,-1)
luftwiderstand = 0.9
richtung = abwurf
for t in time:
richtung = ((richtung + schwerkraft)*luftwiderstand)
aktuell += richtung
[/PYTHON]

Sollte Pseudocode sein, sieht mir aber fast schon nach validem Python-Code aus:lol:

Müsste man mal anschauen was rauskommt und evtl. die Parameter anpassen.

Die Berechnung einer Flugbahn in diesem Sinne wird in http://forum.byte-welt.net/threads/10217-Einfache-Partikelsimulation gemacht, was ich gerade nochmal hier aufgemacht habe. Dort für viele “Partikel”, aber statt der “Partikel” kann man natürlich auch EINEN “Ball” verwenden.