Ein Richtungsvektor (Direction) lässt sich in zwei Winkel umrechnen - welche beiden das sind, hängt vom persönlichen Geschmack und von den Anforderungen ab. Hat man die Bedeutung der Winkel einmal festgelegt, ist die Berechnung nicht so schierig. Meistens gibt es aber bestimmte Directions, die nicht eindeutig einer Winkel-Kombination zugeordnet werden können.
Z.B. kann man als einen Winkel φ die Projektion des Richtungsvektors (x, y, z) auf die XY-Ebene nehmen und dort den Winkel zur X-Achse ermitteln (-π..+π). Als zweiten Wert nimmt man dann z.B. den Winkel ρ zwischen dem Richtungsvektor und der XY-Ebene (-π/2..+π/2).
In der
Unit Math gibt es eine Funktion ArcTan2, die aus zwei Koordinaten den entsprecheden Winkel errechnet. Die Formeln lauten:
φ := ArcTan2(y, x);
ρ := ArcTan2(z, Hypot(x, y));
Die Ergebnisse sind in Bogenmass (Radians) und können mit der Funktion RadToDeg in Grad umgerechnet werden.
Schwierig wird es, wenn der Vektor (0, 0, 1) ist. Dann ist der Ebenenwinkel nicht definiert und somit nicht berechenbar. Es kann auch Probleme geben, wenn der Vektor nur fasst parallel zur Z-Achse liegt, da man dann mit Zahlen nahe Null rechnet.