我用如下代码想对画的每个正方形沿自身的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();
}

解决方案 »

  1.   

    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();
    }
      

  2.   

    不好意识贴错了:
    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();//出栈
    }贴主,你原来的代码是画三角形啊!!