6

gluSphere惑星が太陽の周りを回るように、円運動で定点を中心に回転させたい。

glRotatef または glTranslate を使用するのが最善でしょうか? もしそうなら、どの順番でそれらを呼び出す必要がありますか?

4

3 に答える 3

4

両方を少し行う必要があります。

  • が固定点に「面している」ことを確認してくださいgluSphere。これにより、球に対して前方に移動すると、その軌道の中心に近づきます。
  • glTranslatefgluSphere回転させたいポイントまで進む
  • glRotatef球を周回させたい方向
  • glTranslatef前進した分だけ後退

そうすれば、球体は中心から同じ距離にとどまりますが、適切な軌道で「周り」に移動します。

于 2009-04-24T15:28:05.790 に答える
2

中心から離れて平行移動し、最後まで回転します

于 2009-04-24T15:20:20.193 に答える
-2

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

glTranslatef は、現在の行列に平行移動行列を乗算します。これは、オブジェクトを回転させるのではなく、効果的に「移動」させるため、目的の行列にはなりません。

于 2009-04-24T15:17:05.537 に答える