如何在OpenGL中移动三维空间中的二维对象 基本上我在C++中在OpenGL中创建了一个三维空间中的2D对象。它的创建方式取决于y轴。如何移动它使其位于x轴上?我试过glRotatef和gltranslateef,但都不起作用。有人能帮忙吗

如何在OpenGL中移动三维空间中的二维对象 基本上我在C++中在OpenGL中创建了一个三维空间中的2D对象。它的创建方式取决于y轴。如何移动它使其位于x轴上?我试过glRotatef和gltranslateef,但都不起作用。有人能帮忙吗,opengl,glut,Opengl,Glut,更新:我实际上正在制作一个太阳系。行星位于x轴上。但每次我试图通过调用下面的函数为它们绘制轨道时,圆总是出现在y轴上。我希望它在x轴上与行星重合。我希望这能把事情弄清楚 void drawOrbit(float radius) { glBegin(GL_POLYGON_BIT); glRotatef(90,1, 1.2, 1.0); for (int i=0; i<360; i++) { float degInRad = i*DEG2RAD;

更新:我实际上正在制作一个太阳系。行星位于x轴上。但每次我试图通过调用下面的函数为它们绘制轨道时,圆总是出现在y轴上。我希望它在x轴上与行星重合。我希望这能把事情弄清楚

void drawOrbit(float radius)
{
   glBegin(GL_POLYGON_BIT);

   glRotatef(90,1, 1.2, 1.0);
   for (int i=0; i<360; i++)
   {
      float degInRad = i*DEG2RAD;
      glVertex3f(radius * cos(degInRad), radius * sin(degInRad), 0.0);
      glVertex3f(cos(degInRad)*radius,sin(degInRad)*radius, 0.1);

   }

 glScalef(0.5, 0.5, 0.5);
    glTranslatef(-1.2, 1.2, 1.2);
    glRotatef(60, 1.0, 1.2, 1.0);

   glEnd();
}
void drawOrbit(浮动半径)
{
glBegin(GL_多边形_位);
glRotatef(90,1,1.2,1.0);

对于(int i=0;i所有缩放/平移/旋转操作必须在glBegin之前按相反顺序完成。
spirit:您首先定义相机,然后转到其局部空间中的对象。

您必须更具体地说明它的工作原理。此外,您的翻译代码也会有所帮助。请在调用glVertex3f之前尝试翻译它……请参阅官方文档了解(注意允许的命令的一小部分)和(以及其他)特别指出这会导致错误状态。