预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

GIS专业实验报告(计算机图形学) 实验5使用opengl程序绘制实线、虚线和点划线。 姓名系别班级学号实验日期指导教师实验成绩殷悦地信10.4班20102034822013.6.12肖燕实验目的及要求 使用opengl程序绘制实线、虚线和点划线。。 理论基础 显示列表: 显示列表是一组OpenGL函数调用,它被存储起来供以后执行。这样就可以将基本图素的OpenGL函数实现组织起来,指定名称,构成图段,所构成的图段可以再以后需要的地方显示出来。 创建显示列表方式如下: glNewList(listID,listMode); glutSoildCube(2.0); …… glEndList(); 显示列表的调用: 在显示列表创建之后,可以使用函数 VoidglCallList(GLuintlistID); 调用显示列表,其中参数listID是已定义的显示列表标识。 OpenGL划线函数: glBegin(GL_LINES); glVertex2i(坐标1x,坐标1y); glVertex2i(坐标2x,坐标2y); glEnd(); GL_LINES:直线模式 GL_LINE_STIPPLE:虚线模式 算法设计与分析 程序源码如下: #include<windows.h> #include<gl/glut.h> GLuintLine; 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);//实线 glVertex2i(-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(); /**************点划线********************/ 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); 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_MODELVIEW); glLoadIdentity(); glTranslatef(0.0,0.0,0.0); glCallList(Line); glFlush(); } intmain(intargc,char*argv[]) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(800,600); glutInitWindowPosition(200,200); glutCreateW