0
我正在使用陀螺儀並獲取rotationMatrix,我將用它來旋轉SceneKit上的一個對象。OpenGL:切換軸和反轉軸
,從陀螺儀來旋轉矩陣使用iPhone的軸:
但我的應用程序的工作景觀與home鍵左側。所以,我的軸是:
- X = iphone的Y
- Y = 負 iphone的X
- Z = iphone的Z
所以,我需要旋轉矩陣我從基於[x,y,z]的加速度計接收並創建一個新的[y,-x,-z] ...(是,負Z,因爲在這種特殊情況下我需要物體旋轉對Z)。
好吧,使它旋轉負很容易,但我如何將X軸和Y軸從原始矩陣切換到新的?
這是我到目前爲止有:
// I create a GLKMatrix4 from the CMRotationMatrix
GLKMatrix4 transform = GLKMatrix4Make(rotMatrix.m11, rotMatrix.m21, rotMatrix.m31, 0.0,
rotMatrix.m12, rotMatrix.m22, rotMatrix.m32, 0.0,
rotMatrix.m13, rotMatrix.m23, rotMatrix.m33, 0.0,
0.0, 0.0, 0.0, 1.0);
GLKMatrix4 negativeX = GLKMatrix4MakeXRotation(-M_PI);
GLKMatrix4 rotate = GLKMatrix4Multiply(transform, negativeX);
GLKMatrix4 negativeZ = GLKMatrix4MakeZRotation(-M_PI);
rotate = GLKMatrix4Multiply(rotate, negativeZ);
// ok, now I have [-x, y, -z]
// how do I switch X and Y and transform that into [y, -x, -z]?
明白了。完善!謝謝!!!!! – SpaceDog