为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

使用opengl程序绘制实线、虚线和点划线

2017-11-11 5页 doc 25KB 80阅读

用户头像

is_321575

暂无简介

举报
使用opengl程序绘制实线、虚线和点划线使用opengl程序绘制实线、虚线和点划线 GIS专业实验报告(计算机图形学) 实验5 使用opengl程序绘制实线、虚线和点划线。 姓名 系别班级 学号 实验日期 指导教师 实验成绩 一(实验目的及要求 使用opengl程序绘制实线、虚线和点划线。。 二( 理论基础 1. 显示列表: 显示列表是一组OpenGL函数调用,它被存储起来供以后执行。这样就可以将基本图素的OpenGL函数实现 组织起来,指定名称,构成图段,所构成的图段可以再以后需要的地方显示出来。 创建显示列表方式如下: glNewList(l...
使用opengl程序绘制实线、虚线和点划线
使用opengl程序绘制实线、虚线和点划线 GIS专业实验报告(计算机图形学) 实验5 使用opengl程序绘制实线、虚线和点划线。 姓名 系别班级 学号 实验日期 指导教师 实验成绩 一(实验目的及要求 使用opengl程序绘制实线、虚线和点划线。。 二( 理论基础 1. 显示列: 显示列表是一组OpenGL调用,它被存储起来供以后执行。这样就可以将基本图素的OpenGL函数实现 组织起来,指定名称,构成图段,所构成的图段可以再以后需要的地方显示出来。 创建显示列表方式如下: glNewList(listID,listMode); glutSoildCube(2.0); …… glEndList(); 2. 显示列表的调用: 在显示列表创建之后,可以使用函数 Void glCallList(GLuint listID); 调用显示列表,其中参数listID是已定义的显示列表标识。 3. OpenGL划线函数: glBegin(GL_LINES); glVertex2i(坐标1x,坐标1y); glVertex2i(坐标2x,坐标2y); glEnd(); GL_LINES:直线模式 GL_LINE_STIPPLE:虚线模式 三( 算法设计与分析 程序源码如下: #include #include GLuint Line; void Initial(void) { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); Line = glGenLists(1); glNewList(Line, GL_COMPILE); glTranslatef(-50.0, 20.0, 0.0); glColor3f(255.0, 0.0, 0.0); //实线; glLineWidth(2); glBegin(GL_LINES); glVertex2i(0,0); glVertex2i(100,0); glEnd(); /***************实线***************/ glColor3f(255.0, 0.0, 0.0); //虚线; glEnable(GL_LINE_STIPPLE); glLineStipple (2, 0x4444); glLineWidth(2); glBegin(GL_LINES); glVertex2i(0,-20); glVertex2i(100,-20); glEnd(); /***************虚线***************/ glColor3f(255.0, 0.0, 0.0); //点划线; glEnable(GL_LINE_STIPPLE); glLineStipple (2, 0xffcc); glLineWidth(2); glBegin(GL_LINES); glVertex2i(0,-40); glVertex2i(100,-40); glEnd(); /***************点划线***************/ glEndList(); } void ChangeSize(int w, int h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D (-70.0f, 70.0f, -70.0f, 70.0f); } void Display(void) { glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(0.0, 0.0, 0.0); glCallList(Line); glFlush(); } int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(600,450); glutInitWindowPosition(100,100); glutCreateWindow("OpenGL直线、虚线、点划线"); glutDisplayFunc(Display); glutReshapeFunc(ChangeSize); Initial(); glutMainLoop(); return 0; } 四.程序调试及运行结果的自我分析与自我评价 代码中调用了画线函数的两个不同模式,绘制实线模式(GL_LINES)和绘制虚线模式(GL_LINE_STIPPLE)。点划线是由两条虚线拼合而成,通过设置不同的点距、线宽和样式实现。三种线条一次设置了红、绿、蓝三种颜色,由上而下平行排列。 运行结果见下图1。 图1 调试结果 四( 实验心得及建议
/
本文档为【使用opengl程序绘制实线、虚线和点划线】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索