旋转两个球体

时间:2012-11-08 19:59:27

标签: c++ opengl

我想用不同的旋转连续旋转两个球体。 我的代码目前似乎没有旋转。 这是我的代码:

void renderScene(void) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
        glTranslated(0.0,1.2,-6);
        glRotatef(angle,0,1.2,-6);
        glutSolidSphere(1,50,50);           
    glPopMatrix();

    glPushMatrix();
        glTranslatef(0.0,-1.5,-6);
        glRotatef(angle,0,1.5,-6);
        glutSolidSphere(0.4,50,50);
    glPopMatrix();

    angle=+0.1;
    glutSwapBuffers();
}

有没有我没有添加的内容? 我到处尝试过旋转,它似乎只在push和pop矩阵之外工作,这不是我想要的。

2 个答案:

答案 0 :(得分:2)

angle=+0.1; // assign the value +0.1 to angle

你的意思是:

angle += 0.1; // increment angle by 0.1

答案 1 :(得分:0)

glutSolidSphere在原点周围绘制一个球体:(0,0,0)。 glRotatef也围绕穿过原点的轴旋转。现在,您可能应该知道,围绕其中心旋转球体根本不会改变球体的外观。

你应该做的是先旋转然后然后翻译。像这样:

glPushMatrix();
    glRotatef(angle,0,1.2,-6);
    glTranslated(0.0,1.2,-6);
    glutSolidSphere(1,50,50);           
glPopMatrix();