Hallo, gegeben sei ein Feld mit 5x5 Rechtecken. Ich würde nun gerne einen "Stein" von einem der Felder auf ein anderes Feld "werfen". Also soll das "Zielfeld" nicht einfach nur über eine Gerade verbunden werden, sondern eher etwas in der Form wie die Flugbahn eines geworfenen Steins. Die höchste Stelle des Bogens sollte dabei auch immer etwas über dem Zielfeld, bzw. des Startfeldes sein, so dass der Eindruck eines Wurfs entsteht. Hat da evtl. jemand von euch eine Idee, wie man sowas berechnen kann? So ein eifaches Springen über SIN / TAN bekomme ich schon hin, aber für diesen Fall ist es wohl etwas schwieriger... Programmiersprache wäre Java, aber C#, PHP etc. wären auch OK. Vielen Dank für jede konstruktive Idee, Peter
Gast
#2213348
Parabelgleichung: y = ax² + bx + c Drei Punkte für x und y einsetzen (Startpunkt, Zielpunkt, Scheitel), die Parameter a, b und c ermitteln und dann für alle x-Werte die Höhe berechnen. Scheitel müsst man ausprobiern, ist ein festes Verhältnis zwischen x-Abstand der Start- und Zielpunkte und Höhe über dem Mittelwert der Höhen von Start- und Zielpunkt. Könnte man aber auch als Lookup-Table speichern, nach Höhendifferenz und Wurfweite sortiert.
Gast
#2213352
Dabei handelt es sich um eine Parabel, nicht um eine Kreisbahn, die mit Sin/Tan zu erschlagen wäre. aus dem Physik-Unterricht: Eine balistische Bahn ist eine überlagerte Bewegung bestehend aus einer gleichförmigen x-Komponente und einer gleichmäßig beschleunigten (-9,81m/s²) y-Komponente. Mit dem Wissen sollte dir dein Programm (oder auch Excel) erstklassige Wurfbahnen zeichnen können.
Gast
#2213354
das kann man mathematisch korrekt mit vektoren machen du musst mathematisch korrekt die flugbahn berechnen, dann diese funktion aus einem kamerapunkt auf die ebene projizieren(einfach gerade durch kamera- und funktions punkt und schnittpunkt gerade ebene berechnen)
Gast
#2213357
Ja und um dann Startkoordinate -> Zielkoordinate hinzubekommen musst du die Koordinaten dann in die Wurf-Funktion eintragen und voila... Übrigens solltest du eine Reihe an gültigen Parabeln dabei herausbekommen aus der du dir eine aussuchen kannst (zb könntest du nach der suchen, bei der y um 20% größer ist als Start/Zielpunkt)
Phantomix schrieb: > Dabei handelt es sich um eine Parabel, nicht um eine Kreisbahn, die mit > Sin/Tan zu erschlagen wäre. > > aus dem Physik-Unterricht: > > Eine balistische Bahn ist eine überlagerte Bewegung bestehend aus einer > gleichförmigen x-Komponente und einer gleichmäßig beschleunigten > (-9,81m/s²) y-Komponente. > > Mit dem Wissen sollte dir dein Programm (oder auch Excel) erstklassige > Wurfbahnen zeichnen können. Hmm, das habe ich verstanden, und ich denke, dass ich so auch schöne Bögen berechnen könnte. Allerdings möchte ich im Endeffekt, dass der Startpunkt und der Zielpunkt feststeht, sowie der höchste Punkt des Bogens.
Peter Pippinger schrieb: > Hmm, das habe ich verstanden, und ich denke, dass ich so auch schöne > Bögen berechnen könnte. Allerdings möchte ich im Endeffekt, dass der > Startpunkt und der Zielpunkt feststeht, sowie der höchste Punkt des > Bogens. Was gefällt dir denn an der Methode des zweiten Postings (von "Ich (Gast)") nicht? Start, und Endpunkt hast du ja, den Scheitelpunkt kannst du dir ja einfach definieren (z.B. in der Mitte und gleich hoch wie die Grundstrecke lang).
Die Physik sagt:
Gast
#2213806
Hallo, also ich habe mich jetzt dafür entschieden, die oberen 180° von SIN zu nehmen (0, -1, 0). Als Startpunkte y / Endpunkte y nehme ich dann die Schnittpunkte von x bei jeweils y 0.166, 0.166*2, 0.166*3, 0.166*4, 0.166*5, 0.166*6 Den "Abstand" kann ich dann einer gleichmäßigen "Bewegung" von x Start nach x Ende durchgehen... Ich denke, das dürfte super aussehen. Werde das mal umsetzten und die Ergebnisse posten... Viele Grüße, Peter
wo ist denn das Problem eine einfache ballistische Flugbahn zu berechnen? http://de.wikipedia.org/wiki/Wurfparabel
1 | |
2 | |
willst du nur die Parabel zeichnen, kannst du (1) nach t umstellen und in (2) einsetzen und hast eine y(x)-Funktion
Gast
#2214150
Hallo Peter, wenn man die Wurfbahn nachbilden möchte, sind die Bewegungsgleichungen sehr einfach. Die Position muss nur um die Geschwindigkeit erhöht werden:
1 | |
2 | |
3 | |
4 | |
und für die Z-Richtung wird zusätzlich die Geschwindigkeit um die Erdbeschleunigung erhöht:
1 | |
2 | |
Wie das ganze dann in JAVA aussieht, hab ich hier mal gezeigt. Ich hab zusätzlich noch einen Schatten eingefügt, die X und Y Position ist die gleiche, wie die des Steines. Die Höhe (Z) ist jedoch immer 0. Gerd
Gast
#2214152
ups .. Hier der Link zum Java-Applet: http://www.sebulli.com/SprungLaufbahn/
Hallo Gerd, Hut ab meine Herren. Das hast Du echt super gemacht! Sieht echt klasse aus. Allerdings möchte ich meine Variante in 2D auch mal testen. Würde mich einfach interessieren, ob das auch so realistisch wie bei Dir aussieht. Viele Grüße, Peter
Gast
#2214649
Hallo Peter, Ist eigentlich kein "3D". eher ein "2.5D". Ich rechne zwar im 3D Raum, übernehme dann für den 2D Raum die x und y-Koorindaten und rechne auf die y-Koordinate noch einen Z-Anteil drauf. Dadurch entsteht der Eindruck der "Höhe"
1 | |
2 | |
3 | |
Sourcecode ist ja untenhalb des Applets als ZIP angefügt. Gerd
da ist ein kleiner bug drin: Wenn man den Button drückt bevor der Stein landet, kann es sein dass die neuen Kordinaten außerhalb des Spielfeldes liegen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
