2011-06-21 34 views
1

私は平面を持っていて、それをy軸の周りに回転させたいと思います。私はサークルで回るない、飛行機が回転したいので、私はその後、回転を行うバック原点にそれを翻訳Openglでの回転

Vec4f(-1,-1, -5, 1), 
Vec4f(1,-1, -5, 1), 
Vec4f(1, 1, -5, 1), 
Vec4f(-1, 1, -5, 1), 

glTranslatef(0,0,-5); 
glRotatef(50.0*t, 0, 1, 0); 

draw(plane); 

しかし、平面の平面座標はですまだ原点の周りに円を描く。私は間違って何をしていますか?

答えて

3

変換は逆の順序で適用されます。また、変換は元の位置に戻したい場合もあります。したがって、このようにそれを変更します。

translation = -5; 
if(translate_back) glTranslatef(0,0,-translation); 
glRotatef(50.0*t, 0, 1, 0); 
glTranslatef(0,0,+translation); 
+0

おかげで、それは動作しますが、もう一つの質問、私は原点に戻って飛行機を移動すると、私はglTranslate(0,0,5)ではないglTranslateん(0,0、-5)したがって、コードは次のようになります。 glTranslatef(0,0、-5);glRotatef(50.0 * t、0,1,0); glTranslatef(0,0,5); – Merni

+0

上記のコードでtranslate_back = trueと答えると – datenwolf

+0

ですが、答えが間違っている場合は、逆になるはずです – Merni