0
我正在使用一個名爲FrontDirection的具有Vector3D類型屬性的3D。此對象旋轉如下:WPF - 獲取從上方看的Vector3D的角度度數
var rotate = new AxisAngleRotation3D(new Vector3D(0, 1, 0), deltaAngleInDegrees);
var transform = new RotateTransform3D(rotate);
my3DObject.FrontDirection = transform.Transform(my3DObject.FrontDirection);
經過一些任意數量的旋轉後,我想確定從上面看的對象的角度。我期望值在[0,360)之間變化。我能得到最接近的是以下幾點:
var angle = Vector3D.AngleBetween(new Vector3D(1, 0, 1), my3DObject.FrontDirection);
然而,雖然一個完整的圓角度旋轉對象變化0到180,然後回落至0好像AngleBetween被賦予之間的距離矢量而不考慮方向。什麼是計算角度的好方法?