我在沿着自己的轴而不是任意位置旋转立方体时遇到问题。该多维数据集是其他 27 个多维数据集的集合,我成功地设法旋转了这组多维数据集,但方式不正确。我的意思是当我在 x 轴上旋转立方体时,它围绕输入 (0,0,0) 而不是在它自己的轴上形成一个轨道。我怎样才能让立方体围绕自己的轴旋转?
public void onDrawFrame(GL10 gl)
{
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glScalef(0.8f, 0.8f, 0.8f);
int k=0;
gl.glPushMatrix();
gl.glRotatef(cubeRotX, 0.0f, 0.0f , 1.0f);
gl.glRotatef(cubeRotY, 0.0f, 1.0f , 0.0f);
for(int l=0; l<3; l++)
{
if(l == 2) //To rotate only the first front polygon in 1.7f angle
{
gl.glPushMatrix();
gl.glRotatef(rot, 0.0f, 0.0f, 1.0f);
}
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
gl.glPushMatrix();
gl.glTranslatef(-2.1f+(2.1f*i), -2.1f+(2.1f*j), -23.1f+(2.1f*l));
cube[k++].draw(gl);
gl.glPopMatrix();
}
}
if(l ==2)
{
gl.glPopMatrix();
if(rot >= 90.0f)
rot = 90.0f;
else
rot += 4.0f;
}
}
gl.glPopMatrix();
cubeRotX -= 5.0f;
cubeRotY -= 5.0f;
}