Rotationsmatrix zu Eulerwinkeln

Ich verwende den folgenden Code, um eine 3X3-Rotationsmatrix in Winkel zu konvertieren:

(_r = double [9])

double angleZ=atan2(_r[3], _r[4])* (float) (180.0 / CV_PI);
double angleX=180-asin(-1*_r[5])* (float) (180.0 / CV_PI);
double angleY=180-atan2(_r[2],_r[8])* (float) (180.0 / CV_PI);

Hier ist ein kleiner Helfer

_r[0] _r[1] _r[2]
_r[3] _r[4] _r[5]
_r[6] _r[7] _r[8]

ergibt das einen sinn Weil die Winkel zu stark voneinander abhängen? x y z alle reagieren auf einzelne Posenänderung ...

Die Rotationsmatrix wird von der opencv cvPOSIT-Funktion empfangen, sodass die Punkte von Interesse möglicherweise falsch sind und diesen verwirrenden Effekt hervorrufen ...

aber irgendwie denke ich, dass ich nur die Konvertierung falsch mache :)

Ich wende die Winkel in opengl auf einen Würfel an:

glRotatef(angleX,1.0f,0.0f,0.0f);
glRotatef(angleY,0.0f,1.0f,0.0f);
glRotatef(angleZ,0.0f,0.0f,1.0f);

Antworten auf die Frage(1)

Ihre Antwort auf die Frage