如何在OpenGL中的3d空间中移动2d对象

时间:2015-06-06 14:45:59

标签: opengl glut

基本上我用C ++中的OpenGL在3d空间中创建了一个2d对象。它创建它的方式位于y轴。如何移动它以使其位于x轴上?我试过glRotatef和glTranslatef,但它没有用。有人可以帮忙吗?

更新:我实际上在制造太阳能系统。行星位于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();
}

1 个答案:

答案 0 :(得分:1)

所有缩放/平移/旋转操作必须在glBegin之前以相反的顺序完成。 精神:你首先定义相机,然后你去当地空间的物体。