Der Winkel zwischen zwei Vektoren
Der eine Vektor ist der Richtungsvektor, der die Richtung vorgibt, in die das Modell im Ursprungszustand zeigt.
Wenn das Modell weder rollen noch nicken soll, brauchst du nur einmal einen Winkel auszurechnen, um zu wissen, wie weit du das Modell um die Y-Achse rotieren sollst.
Diesen bekommst du über die im Link enthaltene Gleichung. Der eine Vektor ist dabei immer der Vektor, der am Anfang die Richtung vorgegeben hat. Dieser ändert sich nicht. Der zweite Vektor ist der Richtungsvektor, der die Richtung vorgeben soll, in die das Modell zeigt.
Diese Wird folgendermaßen berechnet:
Richtung = Position_Ziel - Position_Wagen
Dabei solltest du für die
Ordinate (Y-Wert) in beiden Vektoren für den Anfang 0 einsetzen. Das stellt sicher, dass dein Modell, wie
Wümpftlbrümpftl bereits gesagt hat, waagrecht ausgerichtet bleibt.
Beispiel:
Dein Modell ist am Anfang in
Richtung (0,0,1) ausgerichtet und befindet sich auf
Position (1,0,0). Du willst es so ausrichten, dass es auf das Ziel, das sich auf
Position (0, 0, 1) befindet, ausgerichtet ist.
Als erstes berechnest du die Richtung, in die es schauen soll. Diese bekommst du aus den zwei gegebenen Positionen.
ZielRichtung = Position_Ziel (0,0,1) - Position_Wagen (1,0,0) = (-1,0,1)
In die Gleichung eingesetzt, bekommst du
cos (Winkel) = 0,7071. Um den tatsächlichen Winkel zu erhalten,
berechnest du den acos vom entstandenen Ergebnis und hast in diesem Fall 45°.
Tipp:
Zwischen Bogenmaß und Grad richtig konvertieren.
So, jetzt hab ich aber wirklich alles vorgekaut, glaub ich. :lol: