1

2 つの球体を異なる回転で連続的に回転させたい。私のコードは現在、どちらも回転していないようです。これが私のコードです:

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();
}

追加していないものはありますか?どこでも回転を試しましたが、プッシュとポップのマトリックスの外でしか機能しないようです。これは私が望んでいるものではありません。

4

2 に答える 2

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

もしかして:

angle += 0.1; // increment angle by 0.1
于 2012-11-09T12:33:09.613 に答える
1

glutSolidSphere原点 (0,0,0) の周りに球を描画します。glRotatefまた、原点を通る軸の周りを回転します。ご存知のように、球をその中心を中心に回転させても、球の外観はまったく変わりません。

あなたがすべきことは、最初に回転してから平行移動することです。このような:

glPushMatrix();
    glRotatef(angle,0,1.2,-6);
    glTranslated(0.0,1.2,-6);
    glutSolidSphere(1,50,50);           
glPopMatrix();
于 2012-11-08T20:08:28.383 に答える