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」は私の「角度」です。