2014-02-13 4 views
3

나는 지구 주위를 돌고있는 달의 그래픽 모델을 연구하고 있습니다. 지금 달은 지구를 돌면서 y 축을 회전합니다. 달이 회전하는 것을 어떻게 방지 할 수 있습니까? 다음 코드는 ...입니다OpenGL - 회전하지 않고 태양 주위를 달 회전?

편집 : 추가 문제를 보여주기 위해 애니메이션 비디오 :

http://www.youtube.com/watch?v=ltGV4pXD5Cs

void DrawInhabitants(GLint nShadow) 
{ 
    static GLfloat yRot = 0.0f;   // Rotation angle for animation 

    if(nShadow == 0) 
    { 
     yRot += 0.2f; 
    } 

    // Draw the randomly located spheres 
    glBindTexture(GL_TEXTURE_2D, textureObjects[MOON_TEXTURE]); 

    glPushMatrix(); 
     glTranslatef(0.0f, 0.1f, -2.5f); 

     glPushMatrix(); 
      glRotatef(-yRot * 2.0f, 0.0f, 1.0f, 0.0f); 
      glTranslatef(1.0f, 0.0f, 0.0f); 
      gltDrawSphere(0.1f,21, 11); 
     glPopMatrix(); 

     if(nShadow == 0) 
     { 
      // Torus alone will be specular 
      glMaterialfv(GL_FRONT, GL_SPECULAR, fBrightLight); 
     } 

     glRotatef(-yRot, 0.0f, 1.0f, 0.0f); 
     glBindTexture(GL_TEXTURE_2D, textureObjects[EARTH_TEXTURE]); 
     gltDrawSphere(0.3f, 21, 11); 
     glMaterialfv(GL_FRONT, GL_SPECULAR, fNoLight); 
    glPopMatrix(); 
} 
+1

번역 직후에 * 회전 * 회전을 시도하십시오. –

+0

안녕하세요, 내 소식에 동영상 링크를 추가하여 무슨 일이 일어나고 있는지 보여줍니다. – Phil

+0

@luserdroog, Thanks :) 트릭을 돌리지 않았다. – Phil

답변

3

문제는 당신이 달을 배치하기 위해 좌표계를 회전하고 있다는 것입니다 원하는 상대 위치. 이 회전은 전역이므로 달의 방향에도 영향을줍니다. 번역 후 회전을 취소해야하므로 "번역 샌드위치"

관련 문제