OpenGLで立方体を作ったのですが、今のところ自由回転なのでどの方向にも回転します。
上下左右に回転するようにコーディングするにはどうすればよいですか?
ローテーションの私のコードは次のとおりです。
+ (void)applyRotation:(GLfloat *)m x:(GLfloat)x y:(GLfloat)y z:(GLfloat)z {
GLfloat tempMatrix[16];
if(x != 0) {
GLfloat c = cosf(x);
GLfloat s = sinf(x);
[self applyIdentity:tempMatrix];
tempMatrix[5] = c;
tempMatrix[6] = -s;
tempMatrix[9] = s;
tempMatrix[10] = c;
[self multiplyMatrix:tempMatrix by:m giving:m];
}
if(y != 0) {
GLfloat c = cosf(y);
GLfloat s = sinf(y);
[self applyIdentity:tempMatrix];
tempMatrix[0] = c;
tempMatrix[2] = s;
tempMatrix[8] = -s;
tempMatrix[10] = c;
[self multiplyMatrix:tempMatrix by:m giving:m];
}
if(z != 0) {
GLfloat c = cosf(z);
GLfloat s = sinf(z);
[self applyIdentity:tempMatrix];
tempMatrix[0] = c;
tempMatrix[1] = -s;
tempMatrix[4] = s;
tempMatrix[5] = c;
[self multiplyMatrix:tempMatrix by:m giving:m];
}
}