OpenGL围绕一个点旋转

时间:2009-04-24 15:13:23

标签: opengl rotation

我想围绕圆周运动的固定点旋转gluSphere,就像行星围绕太阳一样。

最好使用glRotatef还是glTranslate?如果是这样,我应该按顺序打电话给他们?

3 个答案:

答案 0 :(得分:4)

你必须做两件事:

  • 确保gluSphere“面向”固定点,以便相对于球体向前平移会使您更接近其轨道中心
  • glTranslatef gluSphere转发到您希望它旋转的位置
  • glRotatef你希望球体绕轨道运行的方向
  • 就你前进而言,
  • glTranslatef向后倾斜

这样,你的球体与中心保持相同的距离,但在一个漂亮的轨道上“绕”转换。

答案 1 :(得分:2)

远离中心转换然后一直旋转

答案 2 :(得分:-2)

glRotatef将当前矩阵乘以旋转矩阵。这可以(给出正确的向量)做你正在尝试的事情。

glTranslatef会将当前矩阵乘以平移矩阵,这将有效地“移动”对象,而不是旋转它,因此它不会是您想要的。