您的当前位置:首页opengl计算机图形学之_D编程基础

opengl计算机图形学之_D编程基础

2022-06-17 来源:乌哈旅游
北师大珠海分校信息技术学院

计算机图形学实验报告

实验报告文件命名方式:学号姓名_实验序号_实验名称.doc

姓名 任课教师 实验地点 实验课时间 实验得分 实验序号与名称:实验1:OpenGL基础入门 实验目的: 1. 熟悉3D基本编程 2. 熟悉视点观察函数的设置和使用 3. 熟悉投影变换函数的设置和使用 4. 熟悉基本3D图元的绘制 实验开发环境: 黄静 丽泽C304-1 学号 实验教师 黄静 书写日期 专业 评阅教师 20121112 计算机 硬件要求: PC机,主流配置,最好为独立显卡,显存512M以上。 软件环境: 操作系统:Windows XP。 语言开发工具:Microsoft Visual studio 2008,Visual C++。 并安装OpenGL图形函数库 实验要求: 1.当场检查,计现场分 2.实验所有步骤所生成的效果截图拷贝到实验报告文档里备查,并附上相应的代码。 WORD文档命名方式:学号姓名-实验序号-实验名称。 实验内容与步骤小结、主要截图、核心代码实现: 以下操作需要记录不同效果图和修改的相应参数: 1.让静止的立方体绕Z轴不停旋转 gluLookAt(0,0,5,0,0,0,0,1,0); //视点设置函数 比例:50% 1 / 6

2. 修改不同视点,目标点不变,观看显示效果 gluLookAt(5,0,0,0,0,0,0,1,0); //视点设置函数 3. 修改目标点,视点不动,观看显示效果 gluLookAt(0,0,5,0,3,0,0,1,0); //视点设置函数 gluLookAt(0,0,5,3,0,0,0,1,0); //视点设置函数 4. 视点与目标点同时修改,观看显示效果 gluLookAt(5,0,0,3,0,0,0,1,0); //视点设置函数 2 / 6

5. 视点与目标点不变,修改观察体大小,观看显示效果 gluPerspective(50,w/h,1,60); //定义透视投影投影观察体大小 6. 将正交投影观察体改为透视投影观察体,并设置其大小,观察显示效果 以上都是透视投影观察体,改为正交观察体后如图 比透视投影观察体的亮度暗些,经纬线少一些。 3 / 6

7. 将立方体替换为茶壶,观看显示效果 8. 将立方体替换为圆环,观看显示效果 如上。 3)编写或改写程序,构造自己的3D物体场景造型 glPushMatrix(); glTranslatef(0,0,2); glColor3f(1,1,0); glutSolidIcosahedron(); glPopMatrix(); //绘制二十面体 glColor3f(1,0.5,0); glutSolidIcosahedron(); //绘制圆环 glColor3f(1,0,0.5); glPushMatrix(); glTranslatef(0,0,0); glRotatef(90,1,0,0); glutWireTorus(0.2, 1.2,30,30); //线框模式 glPopMatrix(); glColor3f(0,0,1); glPushMatrix(); glTranslatef(0,0,2); glRotatef(90,1,0,0); glutWireTorus(0.2, 1.2,30,30); //线框模式 glPopMatrix(); 4 / 6

实验课完成程度与表现自我评价: 比例:20% 这次实验课相对不是很难,因为是刚刚开始学3D,觉得3D很抽象,XYZ轴很难理解,还有刚刚学习3D的一些函数,比如视点设置函数,透视投影观察函数,正交观察函数,画多面体,虽然会5 / 6

用了,但是对于内部的参数都不是很理解,通过老师的讲解和实验内容,只是明白了视点设置函数中的每一个参数意义。虽然像八面体,十二面体,二十面体所给的函数只能画中心点在原点的图形,不过我们可以通过栈和平移将它移到别的位置。 实验的体会、收获与建议(结论) 比例:30% 我觉得3D和2D的很像,但是多了一个Z轴,却难度提高不少,有视点,目标点,相机位置。 还有通过鼠标交互使得物体按不同的轴旋转。我们运用到了旋转函数和平移函数的第四个参数,也就是z轴方向上的运动。感觉很抽象,可能我的空间立体感不强,对于在一个窗口上运行的3D图像,不能直观的感受到每一个面 。不过还是希望下次可以继续努力做好3D实验。 评阅教师特殊评语: 评阅教师: 日 期:

6 / 6

因篇幅问题不能全部显示,请点此查看更多更全内容