2009-04-24 11 views
6

太陽の周りを回る惑星のように、円運動で固定点の周りにgluSphereを回したいと思います。OpenGLが点の周りを回転する

glRotatefまたはglTranslateを使用することをお勧めしますか?もしそうなら、私はそれらをどの順序で呼ぶべきですか?

答えて

4

を回転させる:

  • ように、gluSphereは固定小数点を「直面」していることを確認します球に対して順翻訳することは、あなたがしたい、その周りの点へ
  • glTranslatefgluSphere前方にその軌道の中心に近いあなたを置くそれが回転する
  • glRotatefあなたは球が後方ちょうど限り、あなたが前方

を行ったとして、その方法を

  • glTranslatefを周回したい方向は、あなたの球は素敵な軌道上で「周りの」中心から同じ距離を残りますが、翻訳さ。

  • +0

    乾杯! – user64392

    -2

    glRotatefは現在の行列に回転行列を掛けます。これは、あなたがしようとしていることを(正しいベクトルを与えて)行うことができます。

    glTranslatefは現在の行列に変換行列を掛けます。変換行列はオブジェクトを効果的に「移動」させ、回転させないので、望むものとはなりません。

    +0

    円運動のために、glRotatefを使用して設定点を中心に回転させる必要がありますか? – user64392

    +0

    私は、彼がそれぞれ一つずつを必要としていると言うのは事実だと思います。オブジェクトを原点から遠ざけ、原点を中心に回転させます。 (ここで、「起源」はあなたが回りたいと思う中心です) –

    2

    中心から離れて翻訳して、あなたは両方の少しを行う必要があるでしょうすべての方法

    関連する問題