#include <windows.h>
#include <gl\glut.h>
#include <math.h>static float rotAngle=0.0;
     int angle;
     float width = 1.0f;
    float PI = 3.1415926;
  void displayA(void)
{    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    glLoadIdentity();   //加载单位矩阵
    glTranslatef(0.0f, 0.0f, -1.0f);
    //黑色直线
glClearColor(0.0,0.0,0.0,0.0);
    glColor3f(0.0f, 1.0f, 0.0f);
    //禁用反走样
    glDisable(GL_BLEND);
    glDisable(GL_LINE_SMOOTH);
    for(angle=0; angle<180; angle+=10)
    {
        //设置直线宽度
        glLineWidth(width);
        //绘制直线
        glBegin(GL_LINES);
            glVertex2f(5*cos(angle*PI/180), 5*sin(angle*PI/180));
            glVertex2f(10*cos(angle*PI/180), 10*sin(angle*PI/180));
        glEnd();
        //直线宽度增加0.5
        width+=0.5;
    }    //启用反走样
    glEnable(GL_BLEND);
    glEnable(GL_LINE_SMOOTH);    //初始化直线宽度    
width=1.0;    //绘制的直线将在下半区域
    glRotatef(180, 0.0, 0.0, 1.0);
    for(angle=0; angle<180; angle+=10)
    {
        //设置直线宽度
        glLineWidth(width);  
        glBegin(GL_LINES);
        glVertex2f(5*cos(angle*PI/180), 5*sin(angle*PI/180));
        glVertex2f(10*cos(angle*PI/180), 10*sin(angle*PI/180));
        glEnd();  
        //宽度累加
        width+=1.0;
    }
   SwapBuffers(wglGetCurrentDC());//交换前后缓冲区} 
void reshape(int w,int h)
{
 glViewport(0,0,(GLint)w,(GLint)h);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 if(w<=h)
 gluOrtho2D(-1.0,1.0,-1.0*(GLfloat)h/(GLfloat)w,1.0*(GLfloat)h/(GLfloat)w);
 else
 gluOrtho2D(-1.0*(GLfloat)w/(GLfloat)h,1.0*(GLfloat)w/(GLfloat)h,-1.0,1.0);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
}int main(int argc,char** argv)
{
 glutInit(&argc,argv);
 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
 glutInitWindowSize(400,400);
 glutCreateWindow("反走样直线");
 
 glutReshapeFunc(reshape);
 
 glutDisplayFunc(displayA);
 glutMainLoop();
 return 0;
}