0

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

 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);
4

1 回答 1

0

你的描述不够准确。一方面,您提到要围绕 y 轴旋转它。另一方面,它应该向近平面移动。

重要的问题是:您是如何设置投影矩阵的?通常,您尝试在代码中实现的目标看起来并不算太糟糕。但是,您可能已经设置了正交投影矩阵。

于 2013-10-11T05:49:02.867 回答