下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——图形学试验报告四
《计算机图形学》试验报告
详细代码:3414028995@.com
一、试验目的1,使用opengl函数完成一个图形动画程序,显示太阳、地球、月亮之间的运行关系。2,采用opengl材质、光照技术完成一个在小盒内的运动小球,要求小球作为移动光源,观测运行效果。二、试验要求1.把握Window图形编程的基本方法;2.把握如何进行简单动画制作3.把握如何采用opengl材质、光照技术三、试验设备(环境)Windows系统,vs2023四、试验步骤与结果1.使用opengl函数完成一个图形动画程序,显示太阳、地球、月亮之间的运行关系。使用的一些函数:glShadeModel(GL_FLAT);GL_FLAT则只是以指定的某一点的单一色绘制其他所有点glPushMatrix();//进栈gluLookAt(0.0,0.0,5,0.0,0.0,0.0,0.0,1.0,0.0);//观测角度glRotatef((GLfloat)year,0.0,1.0,0.0);//旋转,(GLfloat)year角度设置,0.0,1.0,0.0坐标设置glTranslatef(2.0,0.0,0.0);//平移,后面代表坐标,沿着x正方向平移glPopMatrix();//出栈glutSwapBuffers();//实现双缓冲glViewport(0,0,(GLsizei)w,(GLsizei)h);//矩形大小的调整运行截图:完整代码:#include\#include#defineGLUT_DISABLE_ATEXIT_HACK#includestaticfloatyear=0,day=0;voidinit(void){glClearColor(0.0,0.0,0.0,0.0);glShadeModel(GL_FLAT);//设定着色模式,使用图元中某个顶点的颜色来渲染整个图元。}voiddisplay(void){glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.0,1.0,0.0);glLoadIdentity();glPushMatrix();gluLookAt(0.0,0.0,5,0.0,0.0,0.0,0.0,1.0,0.0);//绘制太阳glRotatef((GLfloat)year,0.0,1.0,0.0);glutWireSphere(0.8,25,25);//绘制地球glRotatef((GLfloat)year,0.0,1.0,0.0);glTranslatef(2.0,0.0,0.0);glRotatef((GLfloat)day,0.0,1.0,0.0);glutWireSphere(0.2,20,20);//绘制月球glRotatef((GLfloat)year,0.0,1.0,0.0);glTranslatef(0.4,0.0,0.0);glRotatef((GLfloat)day,0.0,1.0,0.0);glutWireSphere(0.1,15,15);//glutWireCube(2.0);glPopMatrix();glutSwapBuffers();}voidspinDisplay(void){year=year+0.03;if(year>360.0){year=year-360.0;}}day=day+0.06;if(day>360.0){day=day-360.0;}glutPostRedisplay();voidreshape(intw,inth){glViewport(0,0,(GLsizei)w,(GLsizei)h);//函数作用:用一个视景体截取图像//glFrustum(-1.0,1.0,-1.0,1.0,-1.0,1.0);glMatrixMode(GL_PROJECTION);//mode指定哪一个矩阵堆栈是下一个矩阵操作的目标,参数表示接下来要进行投影相关的操作glLoadIdentity();//设置当前变化矩阵为单位矩阵;单位矩阵就是对角线上都是1,其余元素皆为0的矩阵。然后复位//glOrtho(-3.0,3.0,-3.0,3.0,-3.0,3.0);glFrustum(-1.0,1.0,-1.0,1.0,1.5,20);glMatrixMode(GL_MODELVIEW);//进行视景相关的操作//glLoadIdentity();}intmain(intargc,char**argv){
}glutInit(glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);glutInitWindowSize(600,600);glutInitWindowPosition(50,50);glutCreateWindow(argv[0]);init();glutDisplayFunc(display);glutReshapeFunc(reshape);glutIdleFunc(spinDisplay);glutMainLoop();return0;2,采用opengl材质、光照技术完成一个在小盒内的运动小球,要求小球作为移动光源,观测运行效果。代码:staticintspin=0;voidinit(void){}voiddisplay(void){glPushMatrix();//光源与WireCube模型glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glPushMatrix();gluLookAt(0.0,0.0,5.0,0.0,0.0,0.0,0.0,1.0,0.0);//效果和glTranslatef(0.0,GLfloatposition[]={0.0,0.0,1.5,1.0};glEnable(GL_DEPTH_TEST);glClearColor(0.0,0.0,0.0,0.0);glShadeModel(GL_SMOOTH);glEnable(GL_LIGHTING);glEnable(GL_LIGHT0);//这里使用了LIGHT0的默认值0.0,-5.0);一样}glRotated((GLdouble)spin,1.0,0.0,0.0);//同时旋转光源以及WireCubeglLightfv(GL_LIGHT0,GL_POSITION,position);//光源是几何物体,通过ModelView变换可以移动旋转它glTranslated(0.0,0.0,1.5);glDisable(GL_LIGHTING);glColor3f(0.0,1.0,1.0);glutSolidSphere(0.1,40,40);//WireCube模拟代表光源的位置glEnable(GL_LIGHTING);glPopMatrix();glutSolidTorus(0.28,1.5,8,60);glPopMatrix();glFlush();voidreshape(intw,inth){}voidmouse(intbutton,intstate,intx,inty){switch(button){caseGLUT_LEFT_BUTTON:}if(state==GLUT_DOWN){}break;break;spin=(spin+5)%360;glutPostRedisplay();glViewport(0,0,(GLsizei)w,(GLsizei)h);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(40.0,(GLfloat)w/(GLfloat)h,1.0,20.0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();default:}voidIdle(){}voidkeyboard(unsignedcharkey,intx,inty){}圆环代替箱子,小球上下运动作为光源switch(key){case27:}exit(0);break;s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心灵导航:高中生的心理之旅-培养健康心态掌握自我成长秘籍
- XXXX公司税务管理制度
- 2026 减脂期溜肉课件
- 26年吸烟人群随访手册
- 2026 减脂期仙草课件
- 褥疮护理中的患者家属参与
- 肾性贫血的护理团队建设与管理
- 临床动脉采血护理的关键技术与临床实践
- 2026年中小学教师编制考试历史学科专业知识考试试卷及答案(五)
- 胎儿窘迫的紧急处理流程
- 2026浙江台州路桥区第二人民医院医共体招聘10人备考题库含答案详解
- 2026贵阳市辅警招聘考试题及答案
- 2026山东济南新旧动能转换起步区招聘40人备考题库附答案详解
- 2026春统编版语文 24 大禹治水 教学课件
- YY/T 1986-2025一次性使用无菌神经用导管及附件
- 拍卖公司绩效考核制度
- 苏教版科学四年级下册第二单元第8课 太阳钟(教学课件)
- 成都高投集团招聘笔试题
- 2025年广东省职业病诊断医师考试(职业性化学中毒)在线题库及答案
- 2026年中国化工经济技术发展中心招聘备考题库及1套完整答案详解
- 2025至2030中国商用车用摄像头和监视器更换后视镜行业调研及市场前景预测评估报告
评论
0/150
提交评论