3、ows.h>#includeGLuintLine;voidInitial(void){glClearColor(1.0f,1.0f,1.0f,1.0f);Line=glGenLists(1);glNewList(Line,GL_COMPILE);/************实线***************/glColor3f(0.0,1.0,0.0);glLineWidth(3);glTranslatef(-20.0,20.0,0.0);glBegin(GL_LINES);//实线glV
4、ertex2i(-10,5);glVertex2i(40,5);glEnd();/****************虚线*******************/glColor3f(0.0,0.0,0.0);//更改颜色glEnable(GL_LINE_STIPPLE);//声明线型为虚线;glLineStipple(3,0x0101);//设定线型glLineWidth(2);//设定线宽glBegin(GL_LINES);glVertex2i(-20,-15);glVertex2i(50,-15);glEnd
5、();/**************点划线********************/glColor3f(0.0,0.0,1.0);glLineStipple(3,0x0101);//设定线型glLineWidth(5);//设定线宽,先画点glBegin(GL_LINES);glVertex2i(-20,-35);glVertex2i(50,-35);glEnd();glLineStipple(6,0x0606);//设定线型glLineWidth(2);//设定线宽,再画线glBegin(GL_LINES)
6、;glVertex2i(-20,-35);glVertex2i(50,-35);glEnd();glEndList();}voidChangeSize(intw,inth){glViewport(0,0,w,h);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(-70.0f,70.0f,-70.0f,70.0f);}voidDisplay(void){glClear(GL_COLOR_BUFFER_BIT);glMatrixMode(GL_MOD
7、ELVIEW);glLoadIdentity();glTranslatef(0.0,0.0,0.0);glCallList(Line);glFlush();}intmain(intargc,char*argv[]){glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE
8、GLUT_RGB);glutInitWindowSize(800,600);glutInitWindowPosition(200,200);glutCreateWindow("OpenGL直线
9、、点画线、虚线——姓名:殷悦——学号:");glutDisplayFunc(Display);glutReshapeFunc(ChangeSize);Initial();glutMainLoop();return0;}一.程序调试及运行结果的自我分析与自我评价代码中调用了画线函数的两个不同模式,绘制实线模式(GL_LINES)和绘制虚线模式(GL_LINE_STIPPLE)。点划线是由两条虚线拼合而