我在 OpenGL 程序中遇到对象的方向问题,我无法根据 3D 矢量和角度或 4D 矢量计算 x、y、z 的旋转。我正在使用 c++。
我有:
Vector3f myVector;
float angle;
float rotx;
float roty;
float rotz;
//i need smomething like
doSomething(a,angle,&rotx,&roty,&rotz);
glRotatef(rotx,1.0,0,0);
glRotatef(roty,0,1.0,0);
glRotatef(rotz,0,0,1.0);
// draw object
“myVector”是 3d 空间中的向量。我想在矢量方向旋转对象。“角度”是对象围绕向量的旋转。“rotx,roty,rotz”是局部变量。如何计算 rotx,roty,royz 来做到这一点?
http://en.wikipedia.org/wiki/File:Euler_AxisAngle.png
在链接上的图片中,我的对象朝向“x”的方向,我想将它朝向“e”的方向,“O”是我的“角度”。