2011-01-26 9 views
0

私は今、私が垂直(Y)軸の周りを円で動いているオブジェクトを持っています。私は円の接線と常に一致するようにこのオブジェクトを回転させたい、どうすればいいですか? glRotatefの最初の引数として使用するsin/cosine/tanの組み合わせがわからない...openglは円の接線を回転します

ありがとう!

答えて

1

glRotatefの最初の引数は、ラジアン単位の角度です(したがって、0は回転しません.PIは終わりに終わり、2 * PIはすべて元の方向に回転します)。

あなたはおそらく、質問をするのに要した時間よりも短い時間で試行錯誤して自分自身に答えることができました。

オブジェクトの中心ではなく円の中心になるように回転中心を選択する場合は、別の翻訳ステップは必要ありません。

+0

もっと慎重に質問をお読みください。円の接線方向にオブジェクトを回転させたい場合は、最初の引数としてどの値を渡すかを尋ねていた –

+0

'sin'、' cos'、 'tan'のいずれも使用しません。角度は、これらの関数の引数です。ディスプレースメントを計算する際に以前に 'sin'と' cos'に渡した角度は、 'glRotatef'に渡す角度です。 'glRotatef'は必要に応じて内部的に' sin'と 'cos'を使います。 –

+0

私はそれをもっと複雑にしていたことが分かりました。最初は私は円の動きを使っていました glTranslatef(4 * f、0,4 * g)ここでfとgは時間のsin関数とcos関数でした。 翻訳と回転を使用して同じ効果を得ることができ、回転は常に円に接します。 glRotatef(10 * TIME、0,1,0); glTranslatef(0,0,5); –