Diagonale, gleichmäßige Bewegung
-
Hey!
Ist mir fast peinlich, sowas zu fragen, aber finde keine Info, war in Mathe noch nie richtig gut und möchte das Rad nicht neu erfinden.
Was ich brauche st die Berechnung einer gleichmäßigen, diagonalen Bewegung. Will heißen:
Gegebene Bewegungsgeschwindigkeit = 7.4
Zu bewegen nach X: 4.77391
Zu bewegen nach Y: 0.00000
-> Bewegungsgeschwindigkeit nach X = 7.4
-> Bewegungsgeschwindigkeit nach Y = 0.0Zu bewegen nach X: 6.00000
Zu bewegen nach Y: 6.00000
-> Bewegungsgeschwindigkeit nach X = 7.4
-> Bewegungsgeschwindigkeit nach Y = 7.4Zu bewegen nach X: 3.94786
Zu bewegen nach Y: 9.83341
-> Bewegungsgeschwindigkeit nach X = ???
-> Bewegungsgeschwindigkeit nach Y = ???Der Punkt soll sich auf der Diagonalen immer mit gleicher Geschwindigkeit bewegen, aber eben diagonal, also im letzten Beispiel in die X Richtung langsamer als in die Y Richtung.
Ist klar, was ich meine?MfG
-
Wenn ich dich richtig verstanden habe:
v_y = 7.4
v_x = 7.4 * ( 3.94786 / 9.83341 )
-
Falsch verstanden.
Gegebene Bewegungsgeschwindigkeit = 5.2
Zu bewegen nach X: 7.3
Zu bewegen nach Y: 0.0
-> Bewegungsgeschwindigkeit nach X: 100%, also 5.2
-> Bewegungsgeschwindigkeit nach Y: 0%Zu bewegen nach X: 9.2
Zu bewegen nach Y: 9.2
-> Bewegungsgeschwindigkeit nach X: 50%, also 2.6
-> Bewegungsgeschwindigkeit nach Y: 50%, also 2.6Zu bewegen nach X: 4.7
Zu bewegen nach Y: 9.8
-> Bewegungsgeschwindigkeit nach X: ??? %
-> Bewegungsgeschwindigkeit nach Y: ??? %Die Bewegungsgeschwindigkeit soll also entsprechend aufgeteilt werden.
Hoffe, jetzt ist es verständlich.MfG
-
ceplusplus@loggedoff schrieb:
Gegebene Bewegungsgeschwindigkeit = 5.2
Zu bewegen nach X: 9.2
Zu bewegen nach Y: 9.2
-> Bewegungsgeschwindigkeit nach X: 50%, also 2.6
-> Bewegungsgeschwindigkeit nach Y: 50%, also 2.6Wenn du dich mit jeweils 2.6 in X- und Y-Richtung bewegst, hast du keine Gesamtgeschwindigkeit von 5.2.
-
"... auf der Diagonalen immer mit gleicher Geschwindigkeit bewegen ..."
Ich blick einfach nicht durch.
Es soll zum bewegen eines Objekts in einem 2D Spiel dienen. Einfach eine Bewegung, wobei die X und Y Bewegung unterschiedlich sein kann, aber das Objekt trotzdem mit der X und Y Bewegung zur gleichen Zeit fertig sein soll.MfG
-
Hast du schon einmal von einem Typen namens Pythagoras gehört? Dessen berühmter Satz lautet nicht A+B=C
-
Dachte ich aber.
Ist schon zu spät, ich blick garnix mehr, gehe bald pennen. Würd das aber gern noch wissen.
So geht es ja nicht:
playerMoveSpeedX = playerMoveX / playerSpeed;
playerMoveSpeedY = playerMoveY / playerSpeed;playerPosX += playerMoveSpeedX;
playerPosY += playerMoveSpeedY;Wobei playerMoveX und playerMoveY die zurückzulegenden Strecken sind.
Weil dann bewegt sich der Spieler bei kurzer Strecke langsam, und bei langer Strecke schnell.
MfG
-
musste doch mit sinus/cosinus machen...
x X------------| | | y | Y du willst von X nach Y: sin a = y / sqrt(x^2+y^2) cos a = x / sqrt(x^2+y^2) tan a = y / x v_x = V * cos a v_y = V * sin a wobei v_x die geschwindigkeit in x-richtung ist, v_y die in y-richtung und V die Gesamtgeschwindigkeit
-
ceplusplus@loggedoff schrieb:
Falsch verstanden.
Gegebene Bewegungsgeschwindigkeit = 5.2
Zu bewegen nach X: 7.3
Zu bewegen nach Y: 0.0
-> Bewegungsgeschwindigkeit nach X: 100%, also 5.2
-> Bewegungsgeschwindigkeit nach Y: 0%Zu bewegen nach X: 9.2
Zu bewegen nach Y: 9.2
-> Bewegungsgeschwindigkeit nach X: 50%, also 2.6
-> Bewegungsgeschwindigkeit nach Y: 50%, also 2.6Zu bewegen nach X: 4.7
Zu bewegen nach Y: 9.8
-> Bewegungsgeschwindigkeit nach X: ??? %
-> Bewegungsgeschwindigkeit nach Y: ??? %Die Bewegungsgeschwindigkeit soll also entsprechend aufgeteilt werden.
Hoffe, jetzt ist es verständlich.MfG
Dann waren deine ursprünglichen Zahlenbeispiele aber falsch.
-
@Tim
sorry@Maxi
Das hätt ich jetzt nicht gedacht, es scheint zu funktionieren!Danke
Durch die Berechnung blick ich trotzdem nicht mal im geringsten durch