2013-10-11 149 views
0

我的对象在x轴上从A移动到B,并且除此之外没有任何对象转换。现在,在移动时,我想围绕y轴旋转它,并且运动会相应地改变,我的意思是,如果从-x移动到+ x轴时将它向右旋转,它应该朝z轴方向的近平面移动。我正在使用透视投影。我在循环中修改了gltranslatef中的变量,然后我使用glscalef来缩放由分层结构构成的整个对象。现在我试着下面的代码来实现预期的结果,但它不能正常工作。围绕中心旋转3D对象

glTranslatef(move, 0, 0); 

// If I comment these 3 lines, it does not affect the output 
    glTranslatef(-move, 0, 0); 
glRotatef(rotate,0,1,0); 
glTranslatef(move, 0, 0); 

glScalef(0.2, 0.2, 1.0); 
+0

你不应该使用被弃用的函数,所有这4个函数都被弃用,试着学习新的更好的方法来做这些事情。 – Vallentin

+0

我只能使用上述调用 – debonair

回答

0

你的描述不够准确。 一方面你提到围绕Y轴旋转它。另一方面,它应该走向近平面。

重要的问题是:你如何设置你的投影矩阵?通常,您在代码中尝试实现的内容看起来不错。但是,你可能已经建立了一个正交投影矩阵。

+0

更新的问题来实现它。 – debonair

+0

因此,您试图实现的是: 您有一个可沿x轴移动但在从左到右移动时更接近相机的绘图? 如果不是,您的相机指向哪里? – 1FpGLLjZSZMx6k

+0

我的相机沿z轴。假设你要走上一条路,而你想向右转并继续往那个方向前进。 – debonair