2017-03-07 2 views
-1

OpenGL - イベントキーボードで軸自体の周りを四面体を回転させる方法は?

if ((e != 0) && (e != 180)){ 

    glTranslatef(0.4, 0, 0); 
    glRotatef(e, 0, 0,1); 
    glTranslatef(-0.4, 0, 0); 
    glRotatef(e, 0, 0, 1); 
    glTranslatef(0.4, 1, 0); 

}else{ 

    e = 0 ; 
} 
    glBegin(GL_TRIANGLES); 

    //base left right 
    glColor3f(1, 0, 0); 
    glVertex3f(0.0f, 0.0f, 0.4*sqrt(3)); 
    glVertex3f(-0.4f, -0.4*sqrt(3), 0.47); 
    glVertex3f(0.0f, -0.4*sqrt(3), 0.8*sqrt(3)-(0.14*sqrt(3))); 

    //base left right interna 
    glColor3f(0.0f, 0.0f, 1.0f); 
    glVertex3f(0.0f, 0.0f, 0.4*sqrt(3)); 
    glVertex3f(0.0f, -0.4*sqrt(3), 0.8*sqrt(3)-(0.14*sqrt(3))); 
    glVertex3f(0.4f, -0.4*sqrt(3), 0.47); 

    //bottom 
    glColor3f(1.0f, 1.0f, 0.0f); 
    glVertex3f(0.4f, -0.4*sqrt(3), 0.47); 
    glVertex3f(0.0f, -0.4*sqrt(3), 0.8*sqrt(3)-(0.14*sqrt(3))); 
    glVertex3f(-0.4f, -0.4*sqrt(3), 0.47); 

    glEnd();  
    glPopMatrix(); 

} 

以下の私のコードに従ってください、私は回転をするために、キー「E」とし、キーボードで入力されました。しかし回転は中心の周りを回転しません。 "e"キーを押すたびに "e"の値がe + 60ずつ増えます

答えて

0

glRotatef(e, 0, 0,1);の代わりにglRotatef(e, 0, 1, 0); を試しましたか?

これが問題でない場合は、プロブレンの内容を具体的に説明できますか?

また、固定パイプラインの代わりにシェーダを使用する方法を学ぶ必要があります

関連する問題