欢迎来到天天文库
浏览记录
ID:35618396
大小:167.50 KB
页数:16页
时间:2019-04-02
《计算机图形学课程设计报告--简单图形绘制软件的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、滁州学院图形学设计报告课程名称:计算机机图形学设计题目:简单图形绘制软件的设计与实现系别:计算机科学与技术系专业:姓名:起止日期:2011年5月20日~2011年6月20日指导教师:计算机科学与技术系二00九年制目录⒈引言1⒉需求分析1⒊概要设计13.1概要设计实现的内容13.2函数的功能描述1⒋详细设计2⒌调试与操作说明4⒍课程设计总结与体会6⒎致谢6⒏参考文献6⒐附录7课程设计的主要内容⒈引言本学期系统的学习了计算机图形学,在学期末按课程要求对其进行设计,本课程主要内容包括以图形学算法为目标,深入研究。续而策划设计实
2、现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面做出评价和改进意见。通过完成一个完整程序,经历策划、设计、开发、总结。达到通过本课程设计,使自己巩固和实践计算机图形学课程中的理论和算法;掌握基本图形显示程序设计方法,及二维和三维图形变换等程序设计方法,学习表现计算机图形学算法的技巧。同时以达到培养认真学习积极探索的精神。⒉需求分析图形学设计报告题目:地球与卫星模拟图。图形学设计报告任务及要求:以计算机图形学的研究内容、发展与应用,实现图形输入输出设备,图形显示原理,图形软件标准,基本图形生成算法,
3、图形几何变换与裁剪,自由曲线和曲面,三维实体造型,光照模型,颜色模型,光线跟踪,纹理模拟,常用的计算机动画技术和软件等。课程设计思想:绘制一个地图与卫星模拟图,在此中综合实现本学期中学习到OpenGL编程中大部分的方法与操作。软硬件运行环境:MicrosoftWindowsXP。工发工具:VC++6.0。⒊概要设计3.1概要设计实现的内容利用VC++6.0完成了一个地图与卫星模拟图,该模拟图能实现基本的图形操作功能。通过本次实验,应该了解图形学里使用OpenGL的一些基于操作,了解直线、矩形、圆和Bezier曲线和曲面等
4、图形的绘制原理、旋转原理、移动原理和缩放原理等。本设计包括图形绘制模块、键盘控制模块。图形绘制模块,该模块包括图形的绘制和操作功能,主要有绘制直线、移动直线、缩放和旋转直线;绘制和缩放圆形;绘制Bezier曲线;绘制Berier曲面等。键盘控制模块,该模块主要实现通过键盘Z,X,W,A,S,D来控制旋转,移动,放大等。3.2函数的功能描述⑴初始化OPENGL的灯光,材质,雾,投影方式的函数:voidinitview();⑵绘制图形基于操作函数:voiddraw();⑶绘制图形berzer曲面函数:voidberzer_s
5、urface(floatcontrol_point[],intm,intn);⑷绘制图形berzer曲线函数:voidberzer_curve(floatcontrol_point[],intn,intf);⑸设置一维纹理函数:voidset_texture1d(GLubyteimage[],intwidth);⑹对OPENGL图像的材质操作的函数:voidinitMaterial14⒋详细设计1对图形的操作。voidEnableOpenGL(HWNDhWnd,HDC*hDC,HGLRC*hRC);//初始化设备void
6、DisableOpenGL(HWNDhWnd,HDChDC,HGLRChRC);//还原绘图设备voidinitview();//初始化OPENGL的灯光,材质,雾,投影方式等voiddraw();//绘制图形如曲线,曲面,圆柱,球,点,线,多边形等voidberzer_surface(floatcontrol_point[],intm,intn);//绘制图形berzer曲面voidberzer_curve(floatcontrol_point[],intn,intf);//绘制图形berzer曲线voidset_te
7、xture1d(GLubyteimage[],intwidth);//设置一维纹理voidinitMaterial();//初始化OPENGL的材质2通过方向键,Z,X,W,A,S,D来控制旋转,移动,放大等。if(GetAsyncKeyState(VK_UP)<0)rx+=1;if(GetAsyncKeyState(VK_DOWN)<0)rx-=1;if(GetAsyncKeyState(VK_LEFT)<0)ry+=1;if(GetAsyncKeyState(VK_RIGHT)<0)ry-=1;if(GetAsync
8、KeyState('Z')<0)scale+=0.02;if(GetAsyncKeyState('X')<0)scale-=0.02;if(GetAsyncKeyState('D')<0)tx+=0.05;if(GetAsyncKeyState('A')<0)tx-=0.05;if(GetAsyncKeyState(
此文档下载收益归作者所有