2009-04-24 111 views
6

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

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

回答

4

你必须做一个小小的两个:

  • 确保gluSphere是“面向”固定点,这样相对于球体平移的前让你更接近自己的轨道
  • glTranslatefgluSphere着周围你想要的点的中心,它旋转
  • glRotatef你想要的球入轨
  • glTranslatef向后只是尽量让上前

这样一来,你的球保持距离市中心的距离相同,但被翻译成“围绕”在一个不错的轨道方向。

-2

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

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

+0

因此,对于圆周运动,我应该使用什么glRotatef来旋转设定点? – user64392 2009-04-24 15:26:00

+0

我认为这是真的,他说每个人都需要其中之一 - 将对象从原点转移出来,然后围绕原点旋转。 (其中'起源'是你想旋转的中心) – 2009-08-12 08:44:13

2

从中心翻译离开,然后旋转一路