实验图形学.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验图形学

华北电力大学科技学院 实 验 报 告 | | 实验名称 OpenGL基本图元绘制实验 课程名称 计算机图形学 | | 专业班级: 计算机11K 学生姓名: 学 号: 成 绩: 指导教师:姜丽梅 岳燕 实验日期: 2014.05.29 华 北 电 力 大 学 科 技 学 院 实 验 报 告 第 页 共 页 一、实验目的及要求 掌握计算机图形学及交互式计算机图形学的定义,了解OpenGL的功能及工作流程,掌握基于OpenGL Glut库的程序框架。 掌握基本的二维线画图元的绘制算法及属性,掌握OpenGL基本图元的绘制。 理解二维、三维图形的绘制流程,掌握二维图形和三维图形的图形变换。 了解形体的真实感表示的内容,包括消隐技术、简单光照明模型、多边形的明暗绘制技术以及纹理映射技术。 要求使用OpenGL及GLUT库在Visual C++环境下编写图形绘制程序实现基本图元绘制。 要求对绘制的简单场景综合利用几何变换或gluLookAt函数实现交互式三维观察程序。 二、实验方法与步骤 OpenGL基本图元绘制实验 在两个具有不同属性的窗口中分别显示一个旋转的三角形来演示单缓存和双缓存,在旋转过程中不断改变图形的颜色,利用鼠标或菜单可终止/启动图形旋转。明确程序包括哪些函数,各个函数的功能以及整个流程,从而为进一步做综合性的图形绘制实验奠定基础。 OpenGL三维观察综合实验 对于绘制的立方体(也可以自己拟定)通过键盘移动视点,利用鼠标或键盘控制立方体的旋转方向,从不同角度观察各面颜色不同的立方体,通过本实验加深理解计算机图形学中的三维图形绘制流程的工作原理和OpenGL三维观察流程及相应的函数实 附录源代码及实验结果 实验一: #pragma comment( linker, /subsystem:\windows\ /entry:\mainCRTStartup\ ) #include gl/glut.h #include stdlib.h #include stdio.h #include math.h #define DEG_TO_RAD 0.017453 static GLfloat theta = 0.0; GLfloat r = 1.0; //设置三角形的初始颜色 GLfloat g = 0.0; GLfloat b = 0.0; int singleb,doubleb; void display(void) { glClear(GL_COLOR_BUFFER_BIT); //三角形颜色渐变 glColor3f(r, g,b); r = r - 0.002; g = g + 0.002; b = b + 0.001; if(r 0.001) { r = 1.0; g = 0.0; b = 0.0; } glBegin(GL_POLYGON); glVertex2f(cos(DEG_TO_RAD*theta), sin(DEG_TO_RAD*theta)); glVertex2f(cos(DEG_TO_RAD*(theta+120)), sin(DEG_TO_RAD*(theta+120))); glVertex2f(cos(DEG_TO_RAD*(theta+240)), sin(DEG_TO_RAD*(theta+240))); glEnd(); glutSwapBuffers(); } void spinDisplay (void) //三角形转动弧度设置 { theta = theta +5; if (theta 360.0) theta = theta - 360.0; glutSetWindow(singleb); glutPostWindowRedisplay(singleb); glutSetWindow(doubleb); glutPostWindowRedisplay(doubleb); } void spinDisplay1(void) { glutPostRedisplay(); }

您可能关注的文档

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档