OpenGL围绕一个点旋转

标签 opengl rotation

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

最好使用 glRotatef 还是 glTranslate?如果是这样,我应该按什么顺序调用它们?

最佳答案

你必须两者都做一些:

  • 确保 gluSphere“面向”固定点,这样相对于球体向前平移会使您更接近其轨道中心
  • glTranslatefgluSphere 向前移动到您希望其旋转的点
  • glRotatef 您希望球体绕轨道运行的方向
  • glTranslatef 向后移动到前进的距离

这样,你的球体与中心的距离保持相同,但会在一个很好的轨道上“围绕”平移。

关于OpenGL围绕一个点旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786293/

相关文章:

c++ - 如何仅在特定像素颜色上绘制多边形?

c++ - OpenGL 高度图渲染器不产生平滑的地形

c - 在 C 中旋转一个位数组

java - JOGL 中顶点缓冲区对象的问题

OpenGL:从高度数组绘制环境的最佳方式?

opengl - 在 nvidia opengl 上混合 glGetTexImage 和 imageStore 的问题

c++ - 四元数相机。如何使其正确旋转?

java - Android应用程序在旋转屏幕时崩溃

java swing - JLabel不旋转

c++ - C++:围绕原点旋转点,但输出点在一定程度上不正确