ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:253.98KB ,
资源ID:20122280      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20122280.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机图形学实验报告二.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机图形学实验报告二.docx

1、计算机图形学实验报告二计算机图形学实验报告 一、实验目的1、 使用opengl函数写一个控制台程序,要求输出一些简单的三维图形,包括:球体、圆锥、立方体、茶壶等。2、 使用opengl函数写一个程序,要求实现对一个图形的平移、旋转和缩放的处理3、 使用opengl函数写一个控制台程序,要求实现对鼠标、键盘、窗口缩放等事件的处理。4,在显示窗口的左下1/4处显示一个球的1/2.二、实验要求1.掌握Window图形编程的基本方法;2.使用opengl编写控制程序3.掌握如何进行图形变化三、实验设备(环境)Windows系统,vs2017四、实验内容与步骤1、 使用opengl函数写一个控制台程序,

2、要求输出一些简单的三维图形,包括:球体、圆锥、立方体、茶壶等。圆锥:代码:void display(void) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glColor3f(0.0, 1.0, 0.0);/绿色绘制 glEnable(GL_DEPTH_TEST);/深度缓冲区 glutWireCone(2.5, 3, 30, 4);/绘制圆锥 glFlush(); glutSwapBuffers();void reshape(int w, int h) glViewport(0, 0, w, h); /设置视口 glMatrixMo

3、de(GL_PROJECTION); /将当前矩阵指定为投影模式 glLoadIdentity(); gluPerspective(60, (GLfloat)w / (GLfloat)h, 1.0, 20); /创建透视投影矩阵 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0, 5, 5, 0, 0, 0, 0, -1, 0);/观测点茶壶void display(void) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glColor3f(0.0, 1.0, 0.0)

4、;/绿色绘制 glEnable(GL_DEPTH_TEST);/深度缓冲区 glutWireTeapot(2);/绘制茶壶 glFlush(); glutSwapBuffers();void reshape(int w, int h) glViewport(0, 0, w, h); /设置视口 glMatrixMode(GL_PROJECTION); /将当前矩阵指定为投影模式 glLoadIdentity(); gluPerspective(60, (GLfloat)w / (GLfloat)h, 1.0, 20); /创建透视投影矩阵 glMatrixMode(GL_MODELVIEW);

5、 glLoadIdentity(); gluLookAt(0, 5, 5, 0, 0, 0, 0, 1, 0);/观测点球void display(void) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glColor3f(0.0, 1.0, 0.0);/绿色绘制 glEnable(GL_DEPTH_TEST);/深度缓冲区 glutWireSphere(1, 20, 16);/绘制球体 glFlush(); glutSwapBuffers();void reshape(int w, int h) glViewport(0, 0, w

6、, h); /设置视口 glMatrixMode(GL_PROJECTION); /将当前矩阵指定为投影模式 glLoadIdentity(); gluPerspective(60, (GLfloat)w / (GLfloat)h, 1.0, 20); /创建透视投影矩阵 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0, 3, 3, 0, 0, 0, 1, 1, 0);/观测点立方体void display(void) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); gl

7、Color3f(0.0, 1.0, 0.0);/绿色绘制 glEnable(GL_DEPTH_TEST);/深度缓冲区 glutWireCube(3);/绘制立方体 glFlush(); glutSwapBuffers();void reshape(int w, int h) glViewport(0, 0, w, h); /设置视口 glMatrixMode(GL_PROJECTION); /将当前矩阵指定为投影模式 glLoadIdentity(); gluPerspective(60, (GLfloat)w / (GLfloat)h, 1.0, 20); /创建透视投影矩阵 glMatr

8、ixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0, 5, 5, 0, 0, 0, 1, 1, 0);/观测点2、 使用opengl函数写一个程序,要求实现对一个图形的平移、旋转和缩放的处理以茶壶为例进行void reshape(int w, int h) if (h = 0) h = 1; GLfloat aspect = (GLfloat)w / (GLfloat)h; GLfloat nRange = 100.0f; glViewport(0, 0, w, h); /设置视口 glMatrixMode(GL_PROJECTION); /

9、将当前矩阵指定为投影模式 glLoadIdentity(); if (w = h) glOrtho(-nRange, nRange, -nRange * aspect, nRange * aspect, -nRange, nRange); else glOrtho(-nRange, nRange, -nRange / aspect, nRange / aspect, -nRange, nRange); glMatrixMode(GL_MODELVIEW); glLoadIdentity();3、 使用opengl函数写一个控制台程序,要求实现对鼠标、键盘、窗口缩放等事件的处理。原图数字键4、5

10、、6控制视角向X、Y、Z正方向移动;case 4: xDirection += 0.5; glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluPerspective(65, 1, 1, 50); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(xDirection, yDirection, zDirection, 0, 0, 0, 0, 1, 0); glutPostRedisplay(); break; case 5: yDirection += 0.5; glMatrixMode(

11、GL_MODELVIEW); glLoadIdentity(); gluPerspective(65, 1, 1, 50); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(xDirection, yDirection, zDirection, 0, 0, 0, 0, 1, 0); glutPostRedisplay(); break; case 6: zDirection += 0.5; glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluPerspective(65, 1, 1,

12、50); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(xDirection, yDirection, zDirection, 0, 0, 0, 0, 1, 0); glutPostRedisplay(); break;数字键1、2、3控制视角向X、Y、Z负方向移动; case 1: xDirection -= 0.5; glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluPerspective(65, 1, 1, 50); glMatrixMode(GL_MODELVIEW); g

13、lLoadIdentity(); gluLookAt(xDirection, yDirection, zDirection, 0, 0, 0, 0, 1, 0); glutPostRedisplay(); break; case 2: xDirection -= 0.5; glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluPerspective(65, 1, 1, 50); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(xDirection, yDirection, zDirect

14、ion, 0, 0, 0, 0, 1, 0); glutPostRedisplay(); break;case 3: xDirection -= 0.5; glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluPerspective(65, 1, 1, 50); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(xDirection, yDirection, zDirection, 0, 0, 0, 0, 1, 0); glutPostRedisplay(); break;键盘上W、A、S

15、、D键控制模型向上、向左、向下、向右旋转:void KeyBoards(unsigned char key, int x, int y) switch (key) case w: glMatrixMode(GL_MODELVIEW); glRotatef(angle, -1, 0, 0); glutPostRedisplay(); break; case a: glMatrixMode(GL_MODELVIEW); glRotatef(angle, 0, 0, -1); glutPostRedisplay(); break; case s: glMatrixMode(GL_MODELVIEW)

16、; glRotatef(angle, 1, 0, 0); glutPostRedisplay(); break; case d: glMatrixMode(GL_MODELVIEW); glRotatef(angle, 0, 0, 1); glutPostRedisplay(); break;4,在显示窗口的左下1/4处显示一个球的1/2./窗口调整子程序void myReshape(int w, int h) glViewport(-200, -300, (GLsizei)w, (GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (w = h) glOrtho(-1, 1, -(float)h / w, (float)h / w, -1, 1); else glOrtho(-(float)w / h, (float)w / h, -1, 1, -1, 0.5);五、实验分析与讨论1.掌握了 OpenGL中的三维图形的制作2.了解了图形的简单变换,旋转,缩放等3.需要一定的数学知识作为铺垫教师评语:签名:日期:成绩:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1