计算机图形学课程设计报告计算机图形学课程设计报告组号:第七组小组成员:宋洁邵海军谷文海冯新科学院:资源环境学院专业班级:地科14-2指导老师: 12课程设计题目 : 63主要流程图 94主要源程序 195问题讨论 191实习目的课程设计是信息与计算科学专业集中实践性环节之一,是学习完《计算机图形学》课程后进行的一次全面的综合练习。其目的是:(1)要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能。(2)在实践中认识为什么要学习数据结构,掌握数据结构、程序设计语言、程序设计技术之间的关系,是前面所学知识的综合和回顾。要求(1)了解并掌握交互式图形系统的设计方法,具备初步的独立分析和设计能力;(2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(3)提高综合运用所学的理论知识和方法独立分析和解决问题的能;(4)训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;(5)培养学生团结协作,共同完成相关课题的能力。,通过创建菜单及键盘、鼠标事件实现对图形的人机交互式处理。在理解直线、圆、区域填充、图形裁剪等理论知识的基础上,借助于程序设计语言VC++和OpenGL三维图形库进行小型图形应用软件或三维场景的开发。本课程课程设计注重图形交互处理的主要实现,包括如下几部分:三维立体图形人机交互的处理,主要内容包括以下几点:(1)创建菜单及键盘事件实现对图形的基本处理;(2)平移、缩放、旋转等计算机图形的几何变换;(3)图形的裁剪;(4)平面投影和透视投影;(5)消隐和光照处理;(6)动画的绘制及实现。附:二维图形的绘制主要内容包括以下几点:(1)点、线、圆、多边形、Bezier曲线等计算机基本图元的的绘制;(2)点、线、圆、多边形、Bezier曲线等计算机基本图元属性的设置。 定义三维齐次坐标结构和面的结构;定义各图形绕轴旋转的结构及各坐标轴的放缩结构;定义各个光源的属性及材质表面的属性;定义键盘输入及鼠标输入对应响应的事件;定义各菜单对应执行的响应事件;通过双缓存技术实现动画效果。、键盘输入以及创建菜单执行对应的处理事件,其基本原理如下:鼠标:1)检测鼠标ClicksGLUT为处理鼠标clicks事件提供了一个方法。函数glutMouseFunc,这个函数一般在程序初始化阶段被调用。函数原型如下:voidglutMouseFunc(void(*func)(intbutton,intstate,intx,inty));参数:func:处理鼠标click事件的函数的函数名。从上面可以看到到,处理鼠标click事件的函数,一定有4个参数。第一个参数表明哪个鼠标键被按下或松开,这个变量可以是下面的三个值中的一个:GLUT_LEFT_BUTTONGLUT_MIDDLE_BUTTONGLUT_RIGHT_BUTTON第二个参数表明,函数被调用发生时,鼠标的状态,也就是是被按下,或松开,可能取值如下:GLUT_DOWNGLUT_UP当函数被调用时,state的值是GLUT_DOWN,那么程序可能会假定将会有个GLUT_UP事件,甚至鼠标移动到窗口外面,也如此。然而,如果程序调用glutMouseFunc传递NULL作为参数,那么GLUT将不会改变鼠标的状态。剩下的两个参数(x,y)提供了鼠标当前的窗口坐标(以左上角为原点)。2)检测动作(motion)GLUT提供鼠标motion检测能力。有两种GLUT处理的motion:activemotion和passivemotion。Activemotion是指鼠标移动并且有一个鼠标键被按下。Passivemotion是指当鼠标移动时,并有没鼠标键按下。如果一个程序正在追踪鼠标,那么鼠标移动期间,每
计算机图形学课程设计报告 来自淘豆网m.daumloan.com转载请标明出处.