2012-11-08 67 views
1

我想旋轉兩個不同旋轉的球體。 我的代碼目前似乎沒有得到任何旋轉。 這裏是我的代碼:旋轉兩個球體

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矩陣之外工作,這不是我想要的。

+1

你應該閱讀[是跨張貼在多個棧Exchange站點問題允許如果問題是切合主題爲每個站點? ](http://meta.stackexchange.com/questions/64068/is-cross-posting-a-question-on-multiple-stack-exchange-sites-permitted-if-the-qu),(我在說話關於http://gamedev.stackexchange.com/questions/43412/rotating-spheres) –

回答

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

您是不是要找:

angle += 0.1; // increment angle by 0.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(); 
+0

我已經試過這個,它沒有工作 – Dave

+0

@Dave:那麼問題一定是其他ERE。例如:驗證場景實際上是否重繪,該視口設置是否正確,模型矩陣當前是否處於活動狀態等等。 – ybungalobill

+0

它似乎在其推出和彈出矩陣之外但在其內部工作 – Dave