glTranslatefはglRotatef後に台無しにされます

user12692182:

私はPyOpenGLに初心者です。私は、キューブを表示し、それを使用して簡単なコードを作った、とあなたは、キーボードを使用してナビゲートすることができます。しかし、私はglRotatefコマンドが呼び出された後、それはあなたの視点、オブジェクトのないpositionmentを変えることに気づきました。しかし、glTranslatefは、透視上では動作しませんし、むしろ座標系をリテラル。言い換えれば、90 *によりglRotatefコマンドを呼び出した後、前方にあなたを移動しているだろうglTranslatefコマンドは現在、左に移動できます。、あなたは回転に基づいてglTranslatefに渡す値を変更するにはglTranslatefのような機能あなたが変な動きを得ることはありませんので、それだけは、回転に変更したり、あなたが行うことができます回避策のいくつかの並べ替えがありますか?

Rabbid76:

操作等glTranslateglRotate新しいマトリックスによって(並進それぞれ回転)行列と乗算現在の行列を定義します。行列の乗算はない可換(OpenGLの行列乗算は右から左に読まれる必要があります:あなたはモデルを回転AN回転のモデルの独立を翻訳したい場合は、回転行列で翻訳する前に、それぞれの乗算平行移動行列を回転をしなければなりません):

modelmatrix = translation * rotation

それぞれglTranslateの前にglRotate

glTranslate(x, y, z)
glRotate(angle, ax, ay, az)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=14931&siteId=1