0 Daumen
882 Aufrufe

Beim Programmieren einer Bewegung im Dreidimensionalen Raum befindet sich der Spieler am Punkt x/y/z. Er bewegt sich dabei entlang eines Variablen Vektors.

Ich brauche eine Formel, mit der ich sowohl auf der horizontalen als auch vertikalen Ebene die Winkel berechnen kann, um den man sich "drehen" müsste, um sich exakt auf einen Zielpunkt (x2 / y2 / z2) zuzubewegen.

Auslesbar sind folgende Informationen:

-Die Position des "Punktes", an dem sich der Spieler befindet (x/y/z)

-Die Position des "Zielpunktes" (x2/y2/z2)

-Der Vektor, auf dem sich der "Punkt"/Spieler bewegt (anhand der horizontalen sowie vertikalen Drehung)


Ich hoffe, meine Erklärung ist verständlich - Herzlichen Dank.

Avatar von

1 Antwort

0 Daumen
Der Vektor, auf dem sich der "Punkt"/Spieler bewegt

Den Vektor nenne ich v := (xv yv zv).

Zunächst ein mal würde ich so transformieren, dass der Spieler im Ursprung ist.

-Die Position des "Zielpunktes" (x2/y2/z2)

Das wird transformiert zu w := (xw yw zw) := (x2-x  y2-y  z2-z).

Anschließend werden v und w normiert:

        v' := 1/|v| · v
        w' := 1/|w| · w

Dann  rechnet man die Kugelkoordinaten von v' und w' aus. Daraus ergeben sich die Rotationwinkel.

Avatar von 107 k 🚀

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community