基本上我用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();
}
答案 0 :(得分:1)
所有缩放/平移/旋转操作必须在glBegin之前以相反的顺序完成。 精神:你首先定义相机,然后你去当地空间的物体。