我想让一个gluSphere
以固定点为中心做圆周运动,就像行星绕着太阳转一样。
最好使用glRotatef还是glTranslate呢?如果使用,应该按什么顺序调用它们?
你需要做一些事情:
gluSphere
"面向" 固定点,这样相对于球体的前进会让你更接近其轨道中心glTranslatef
将 gluSphere
前移到想要它绕着旋转的点glRotatef
确定球体绕行的方向glTranslatef
向后移动与前进距离相同的距离这样,你的球体就能在一个漂亮的轨道上绕行,而与中心的距离保持不变。
将其翻译为远离中心,然后旋转到最大角度
glRotatef会将当前矩阵乘以一个旋转矩阵。如果向量正确,这可以实现您想要的效果。
glTranslatef会将当前矩阵乘以一个平移矩阵,这将有效地“移动”对象,而不是旋转它,因此这不是您想要的。