我想使用 3x3 矩阵旋转 3D 立方体。我设法得到矩阵,但OpenGL需要一个四元数来旋转立方体
glRotatef(浮动角度,浮动 x,浮动 y,浮动 z);
如何从 3x3 矩阵到四元数才能正确使用此方法?
谢谢!
我想使用 3x3 矩阵旋转 3D 立方体。我设法得到矩阵,但OpenGL需要一个四元数来旋转立方体
glRotatef(浮动角度,浮动 x,浮动 y,浮动 z);
如何从 3x3 矩阵到四元数才能正确使用此方法?
谢谢!
glRotatef
不期望四元数,而是轴和角度(以度为单位)。看一下:
http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm
请参阅此处以了解它是如何在 javascript 中完成的。方法是一样的,把一个3x3的矩阵转换成四元数,把代码转换成java就行了。