我正在使用gl-matrix lib(https://github.com/toji/gl-matrix
有可能从quat和quat从mat3创建mat3:


mat3.fromQuat
quat.fromMat3


但是我有mat4旋转矩阵。
我以这种方式创建它:

var turnmat = mat4.create();
mat4.identity(turnmat);

mat4.rotate(turnmat,turnmat, yaw,   [0, 1, 0]);
mat4.rotate(turnmat,turnmat, pitch, [1, 0, 0]);
mat4.rotate(turnmat,turnmat, roll,  [0, 0, 1]);


然后我要退出这个矩阵。但是只有quat.fromMat3,而不是quat.fromMat4。
我在这里做什么错?

裁判(无代表添加为链接):

http:// glmatrix.net/docs/2.2.0/symbols/mat3.html#.fromQuat

http:// glmatrix.net/docs/2.2.0/symbols/quat.html#.fromMat3

最佳答案

gl-matrix中定义的四元数仅用于3D空间。您要做的是从Mat4中取出3D旋转分量并将其转换为四元数。

09-17 04:09