我用如下代码想对画的每个正方形沿自身的Y轴旋转,可运行结果是所有的正方形沿系统Y轴旋转,大家帮我找找原因,谢了!for(double x=-2;x<=2;x+=0.5)
{
glPushMatrix();
glRotatef(n,0.0,1.0,0.0);//n为旋转角度;
glBegin(GL_LINE_LOOP);
glVertex3f(x,1,-1);
glVertex3f(x,-1,-1);
glVertex3f(x,-1,-1);
glVertex3f(x,1,1);
glEnd();
glPopMatrix();
}
{
glPushMatrix();
glRotatef(n,0.0,1.0,0.0);//n为旋转角度;
glBegin(GL_LINE_LOOP);
glVertex3f(x,1,-1);
glVertex3f(x,-1,-1);
glVertex3f(x,-1,-1);
glVertex3f(x,1,1);
glEnd();
glPopMatrix();
}
{
glPushMatrix();
glRotatef(n,0.0,1.0,0.0);//n为旋转角度;
glBegin(GL_LINE_LOOP);
glVertex3f(x,1,-1);
glVertex3f(x,-1,-1);
glVertex3f(x,-1,-1);
glVertex3f(x,1,1);
glEnd();
glPopMatrix();
}
int n=45;//定义旋转45度
for(double x=-2;x<=2;x+=0.5)
{
glPushMatrix();//压栈
glTranslatef(x,0.0f,0.0f);//下面物体将在(x,0.0f,0.0f)的位置绘制
glRotatef(n,0.0,1.0,0.0);//沿x,0.0f,0.0f的y轴旋转45度
glPushMatrix();//压栈
glBegin(GL_QUADS);//画正方形
glVertex3f(0,-1.0f,-1.0f);//以下坐标都是相对(x,0.0f,0.0f)的
glVertex3f(0,-1.0f,1.0f);
glVertex3f(0,1.0f,1.0f);
glVertex3f(0,1.0f,-1.0f); glEnd();
glPopMatrix();//出栈
glPopMatrix();//出栈
}贴主,你原来的代码是画三角形啊!!