请帮助。
我在3D max上的相机方向是:
90 -30 0
当我导出到X3D文件时,它将具有以下方向:
0, 0, -1, -0.524
我可以轻松地将其转换为相机的角度 在z轴上像这样:
-1 * -0.524 * 180/Math.PI = 30;
问题:
但是当我将相机以3D max旋转到:
90 -30 90
在X3D上,我得到了这个向量:
-0.251, 0.935, -0.251,-1.638
如何计算z角的值?
答案 0 :(得分:1)
找到了一种在Stage3D中实现此目标的方法,在其他平台上可能也是如此:
首先,您创建一个空的matrix3D:
var m3d:Matrix3D = new Matrix3D();
然后使用X3D文件中的给定方向矢量旋转它:
m3d.appendRotation(v.w*180/Math.PI,new Vector3D(v.x,v.y,v.z));
分解矩阵
var angles:Vector3D = m3d.decompose("eulerAngles")[1];
您会获得以弧度为单位的xyz角,因此将弧度转换为度:
var _z:Number = angles.z*180/Math.PI;