1

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

  • 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。但是只有quat.fromMat3,没有quat.fromMat4。我在这里做错了什么?

refs(没有代表添加为链接):

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

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

4

1 回答 1

0

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

于 2013-04-11T19:09:31.767 回答