如何将Vector转换为z旋转角度

时间:2018-08-25 20:56:21

标签: actionscript-3 3d stage3d x3d

请帮助。

我在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角的值?

1 个答案:

答案 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;