Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Nächstes Welt-Position berechnen (3D Spiel) (https://www.delphipraxis.net/133811-naechstes-welt-position-berechnen-3d-spiel.html)

sk0r 9. Mai 2009 11:32


Nächstes Welt-Position berechnen (3D Spiel)
 
Hallo,

gibt es eine Formel, mit der ich ausrechnen kann, welches Weltposition(X,Y,Z) die nächste ist?
Dies sollte anhand der ViewAngles geschehen, damit man sich vorwärts bewegen kann.

Hilfe wäre nett.

MfG: sk0r

mkinzler 9. Mai 2009 11:40

Re: Nächstes Welt-Position berechnen (3D Spiel)
 
Deine Frage ist imho so nicht beantwortbar. Wie liegt die Welt vor (BSP, Scenegraph, ...)?

mr_emre_d 9. Mai 2009 12:58

Re: Nächstes Welt-Position berechnen (3D Spiel)
 
Naja ..

Wie bewegt sich ein Objekt in einem 3D Raum?

Position = Position + Velocity !

Also wäre die nächste Position einfach die Formel da oben angewendet.

Falls du jedoch deine Objekte anders "rumbewegst" musst du eben deine
eigene Funktion und betrachten, wie die neue Position ermittelt wird.

MfG

SimStar001 9. Mai 2009 13:56

Re: Nächstes Welt-Position berechnen (3D Spiel)
 
Bitte gib uns doch mehr Infos, sonst können wir dir nicht wirklich helfen und ist nur rumgerate...

BAMatze 9. Mai 2009 16:22

Re: Nächstes Welt-Position berechnen (3D Spiel)
 
Zitat:

Zitat von mr_emre_d
Naja ..

Wie bewegt sich ein Objekt in einem 3D Raum?

Position = Position + Velocity !

Also wäre die nächste Position einfach die Formel da oben angewendet.

Falls du jedoch deine Objekte anders "rumbewegst" musst du eben deine
eigene Funktion und betrachten, wie die neue Position ermittelt wird.

MfG

Mal kurz OT korrigieren, ganz so einfach ist die Formel nicht anwendbar, da Position und Velocity unterschiedliche "Einheiten" haben aber ansonsten stimmt das Vorgehen natürlich. Einheitenkonsistent wäre es natürlich: Position = Position + Velocity * Zeit. Oder für alle Mathematiker unter uns: Position = Integral Velocity über Zeit. :P

mr_emre_d 9. Mai 2009 16:44

Re: Nächstes Welt-Position berechnen (3D Spiel)
 
Da haste Recht :)

Nun, Velocity ist dann die falsche Bezeichnung :P
Damit wollte ich alle Kräft (- Geschwindigkeit, Stoßkräfte, Erdanziehung, ... ), die auf ein Entity wirken aufsummiert in einem Vektor darstellen .. = "vecX"

Schlussendlich ist es dann
Pos += "vecX"

PS: Velocity (in dem Sinne) und Position haben nicht unterschiedliche "Einheiten" ?!
Beide sind Vektoren

MfG

Khabarakh 9. Mai 2009 16:50

Re: Nächstes Welt-Position berechnen (3D Spiel)
 
Zitat:

Zitat von mr_emre_d
Nun, Velocity ist dann die falsche Bezeichnung :P

Doch, ist richtig!
Zitat:

Schlussendlich ist es dann
Pos += "vecX"
Nein, ist es nicht!

:P :mrgreen:

BAMatze hat dich nicht falsch verstanden, deine Formel ist einfach falsch. Es muss heißen: pos += dt * v
Und bei Kraft wären wir dann bei Beschleunigung, also noch eine Ableitung tiefer:
v += dt * a
p += dt * v

mr_emre_d 9. Mai 2009 16:52

Re: Nächstes Welt-Position berechnen (3D Spiel)
 
Ich geb mich geschlagen :)

:mrgreen:

jfheins 9. Mai 2009 16:55

Re: Nächstes Welt-Position berechnen (3D Spiel)
 
Zitat:

Zitat von mr_emre_d
Da haste Recht :)

Nun, Velocity ist dann die falsche Bezeichnung :P
Damit wollte ich alle Kräft (- Geschwindigkeit, Stoßkräfte, Erdanziehung, ... ), die auf ein Entity wirken aufsummiert in einem Vektor darstellen .. = "vecX"

Schlussendlich ist es dann
Pos += "vecX"

PS: Velocity (in dem Sinne) und Position haben nicht unterschiedliche "Einheiten" ?!
Beide sind Vektoren

MfG

1. "Vektor" ist keine Einheit ;)

velocity ist englisch für Geschwindigkeit (in diesem Falle die gerichtete, im Deutschen unterscheidet man da nicht so) und hat damit die Einheit m/s (Oder km/h - aber halt Strecke/Zeit)

Und das muss man eben mit einer Zeitdifferenz multiplizieren, um eine Positionsdifferenz rauszubekommen. Wenn du das einfach so immer auf den Ortsvektor draufaddierst, tust du so als wäre die Zeitdifferenz immer konstant 1. Dann kann das (was auch immer es ist) auf schnellen Computer zu schnelle laufen und auf langsamen Computern langsamer als es sollte ;)

BAMatze 9. Mai 2009 16:58

Re: Nächstes Welt-Position berechnen (3D Spiel)
 
Ach darum gings doch gar nicht :-D glaube die meisten wussten was du meintest. Und ich denke es ging um das Prinzip, welches du gepostet hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz