四元数旋转x轴45度
问题描述:
大家晚上,四元数旋转x轴45度
我使用glMultMatrixf在OpenGL中使用的矩阵旋转我的场景:
float matrix[16] = { 1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0 };
我这个指南(link)一直在关注,但它在我所需要的顶部稍微有些过度。
我该如何简单地将x轴旋转45度?
干杯
答
通过这个旋转矩阵相乘的变换矩阵应该做的伎俩:
float rot45X[16] = { 1.0, 0.0, 0.0, 0.0,
0.0, cos(PI/4), -sin(PI/4), 0.0,
0.0, sin(PI/4), cos(PI/4), 0.0,
0.0, 0.0, 0.0, 1.0 };
编辑:您还可以,当然使用的效用函数
glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
其中[x ,y,z]表示旋转轴(是的,它围绕任意矢量执行旋转)。
在你的情况,你需要这样的呼吁:
glRotatef(45, 1, 0, 0);
完美的感谢! – Ljdawson 2010-01-05 22:51:52