2017-10-12 14 views
-1

私は球を使用して必要に応じて縮尺を変えた形のオブジェクトを描画しようとしています。私は次のコードでこの日食の形のオブジェクトを回転しようとしていますが、それは動かないでしょう(少なくとも、それは見た目には見えません)。私は別の3D形状に変更するだけでテストし、回転します。私が間違っていることはありますか? SolidSphereとは何が違うのですか?OpenGLを使って縮尺した球を回転する

glPushMatrix(); 
    glTranslatef(subx, suby + y, subz); 
    glScalef(9.0, 1.75, 1.75); 
    glRotatef(angle, 0, 1, 0); 
    glTranslatef(-subx, -suby, -subz); 
    glTranslatef(subx, suby, subz); 
    glutSolidSphere(1.0, 50, 50); 
glPopMatrix(); 
+2

'' Scale''の前に '' Rotate''を移動すると問題が解決されますか? – undeadherbs

+0

@undeadherbsはい! – rafvasq

+1

問題は球がまだ球状である間に球を回転させてからそれを伸ばすことでした。 – undeadherbs

答えて

0

上記のコメントで指摘された問題は、私がそれを伸ばす前に球体を回転させていたことでした。スケーリングしてから回転して問題を解決しました。

glPushMatrix(); 
    glTranslatef(subx, suby + y, subz); 
    glRotatef(angle, 0, 1, 0); 
    glScalef(9.0, 1.75, 1.75); 
    glTranslatef(-subx, -suby, -subz); 
    glTranslatef(subx, suby, subz); 
    glutSolidSphere(1.0, 50, 50); 
glPopMatrix(); 
関連する問題