Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

1

08.02.2011, 16:05

[C++ & SDL] Wurfparabel auf Objektbewegung übertragen?

Hallo an alle,

ich habe da mal ein kleines Problem, auf das ich nicht wirklich eine Lösung weis und zwar würde ich gerne ein Objekt auf einer Wurfparabel bewegen lassen. Ich habe dafür versucht, x und y unterschiedlich zu betrachten und kam dabei auf : x = konstant y = 0.5*g*t. Mit diesen beiden Bewegungen kann man jedoch keine Parabel zeichnen, da das Objekt ja nur nach unten, bzw zur Seite bewegt wird und nicht anfangs nach oben und dann ab einem Punkt nach unten. Meine Frage ist nun also, wie ich das in einen Code bringen kann, dass sich mein Objekt auf einer umgekehrten Parabel bewegt?


Hoffentlich könnt ihr mir helfen.


Mit freundlichen Grüßen



Jawaiica'
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

Tobiking

1x Rätselkönig

  • Private Nachricht senden

2

08.02.2011, 16:17

Ich weiß nicht wo deine Formel für y herkommt, aber das ist auch keine Parabel sondern eine Gerade. Was du suchst ist http://de.wikipedia.org/wiki/Wurfparabel…_Luftwiderstand die 3. Formel

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

3

08.02.2011, 16:32

ja ne, dass ist ja, wenn man das Objekt ab dem Hochpunkt der Parabel wirft. Ich suche ja eine Lösung, wie ich das Objekt auf eine Parabelförmige Bewegung bringe. Wenn ich das so mache, dann kommt es bei mir aufs selbe hinaus. x = konstant , y = g/2 * (SDL_GetTicks() * SDL_GetTicks());

Wie würdest du das denn in einen Code umwandeln? So bekomme ich jedenfalls nur einen Parabel Arm raus. =(
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

4

08.02.2011, 16:37

Gib deinem Objekt doch eine Startgeschwindigkeit.

v0 = beliebige Startgeschwindigkeit in y-Richtung
v(t) = v0 - gt
s(t) = v(t)*t

Wenn du das noch richtig in Code umsetzt, dürfte es wie eine Wurfparabel aussehen.

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

5

08.02.2011, 17:20

Haha, ja klar ich hab die ganze Zeit über das v*t am Anfang ignoriert -.-' Jetzt geht es wunderbar^^ danke für eure Hilfe!
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

6

08.02.2011, 19:05

Gib deinem Objekt doch eine Startgeschwindigkeit.

v0 = beliebige Startgeschwindigkeit in y-Richtung
v(t) = v0 - gt
s(t) = v(t)*t

Wenn du das noch richtig in Code umsetzt, dürfte es wie eine Wurfparabel aussehen.

naja, s(t) ist eigentlich nciht v(t)*t, sondern das integral von v(t) überr der Zeit, sprich:
s(t) = v0*t - 1/2*g*t²

7

08.02.2011, 20:25

Ja, das von mir ist wirklich nicht so gelungen :pinch: , hat aber scheinbar trotzdem geholfen.
Da er ja scheinbar die vergangene Zeit hat, wollte ich ihm möglichst eine Lösung damit anbieten. Bei deiner Gleichung wäre ja die Zeit nach Abwurf gemeint.

Neuer Vorschlag:
ds = v(t)*dt
Dieses könnte er dann in jedem Frame zur Gesamtstrecke addieren?
Edit: Ok, das dürfte jetzt äquivalent zu deinem sein...

Tobiking

1x Rätselkönig

  • Private Nachricht senden

8

09.02.2011, 03:34

Da er ja scheinbar die vergangene Zeit hat, wollte ich ihm möglichst eine Lösung damit anbieten. Bei deiner Gleichung wäre ja die Zeit nach Abwurf gemeint.

Man kann das ja einfach mal durchrechnen:

Gesucht: s(t+dt) - s(t) Positionsänderung im Zeitraum t bis t + dt. Dabei ist t die Simulationszeit des letzten Frame und dt die Zeit die seit dem letzten Frame vergangen ist.

s(t+dt) = v0(t+dt) - g/2(t+dt)² = v0*t + v0*dt² - g*t²/2 - g*t*dt - g*dt²/2 = s(t) + s(dt) + g*t*dt
=> s(t+dt) - s(t) = s(dt) + g*t*dt => Auch in der Positionsänderung spielt die Gesamtzeit t eine Rolle.

Werbeanzeige