0

私のプログラムでは、画面に長方形の図形があり、使用gluLookAtして方向を変更しましたが、常にウィンドウの中心を見続けています。
アプリケーションで連続して呼び出されるdraw関数では、プログラムにいくつかの状態があります。

    draw function
{
    //if condition 1
    gluLookAt(0,0,0); //look At the origin of the window.
    //if condition 2
    glTranslatef(20, 10, 10);//go to some point and STOP looking At 0,0,0
    //if condition 3
    glTranslatef(point);
    glRotatef()
    glTranslate(-point)
}

コードは最初は正常に実行if conditionされ、図は原点に向かって適切に見え続けます。アプリケーションで 2 番目のフラグをif conditiontrue に変更すると、翻訳が得られますが、形状は引き続き原点を見続けます。
どうすればこれを停止できますか? 通常の長方形はlookAtなしで描画されるため、形状をまっすぐにしたい。

この図は必ずしも長方形ではありません。他の形もあるかもしれません

4

1 に答える 1

0

への呼び出しで行列を初期化しますglLoadIdentity(つまり、呼び出しの 2 番目のif condition前にglTranslatef)。http://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xmlを参照してください。

glLoadIdentity — 現在の行列を恒等行列に置き換える

于 2013-01-17T18:39:51.997 に答える