文档介绍:《计算机图形学》课程设计报告题目名称:  机器人手臂  专  业  计算机科学与技术  班  级 学  号    姓  名    指导教师   王玉昆     2014年6月12日机器人手臂一、:(1)掌握动画基本原理;(2)实现三维几何变换及其组合;功能要求:(1)利用glutWireCube创建机器手臂:上臂,前臂,带有手指的手(2)编写三维旋转变换矩阵实现“上臂带动前臂转,前臂带动手转”的效果;(3)使用键盘的上下左右控制键各部分的旋转;,使学生具备通过具体的平台实现图形算法的设计、编程与调试的能力,完成对实验结果分析、总结及撰写技术报告的能力,达到:巩固和实践计算机图形学课程中的理论和算法;学习表现计算机图形学算法的技巧;培养认真学习、积极探索的精神。二、(1)几何变换相关原理视点变换和模型变换在计算机图形学中统一称为几何变换。视点变换和模型变换只是考虑问题的出发点不同,最后变换的结果都是一样的。几何变换是指三维场景中的物体运动姿态的变化,包括物体的平移,旋转和缩放。在OpenGL中提供了3个命令函数来实现平移,旋转和缩放。它们是glTranslate(),glRotate(),glScale(),从而可以确定一个物体在场景中的位置,旋转角度和缩放比例。直接使用OpenGL中的矩阵操作函数可以实现几何变换,但是使用OpenGL中的变换函数,变换的速度要快得多。(2)几何图形像素化相关原理是指单元格中颜色值相近的像素结成块来清晰的定义一个选区。(3)光照模型相关原理当光线照射到物体表面上时,将出现3种情况:光从物体表面反射,形成反射光。光穿透物体,形成透射光。光被物体吸收,转化称为物体的内能。在上述3种情形的光线中,通常只有前两种情况的光线会对人眼产生视觉效果,使人察觉到物体的色彩变化。OpenGL用一种近似的光照模型模拟现实世界的光照效果。在该模型中,仅当物体表面吸引和反射光线时,光源才会起作用。每一个物体表面都假定是由具有某种特性的材料构成的。一种材料可能发出自己的光线,也可能在各个方向上发散一些射入的光线,还有可能象镜子一样在某个方向强烈地反射入射光。(1)系统界面与图形显示示例(2)操作说明(配合图示进行说明)肩膀:'a'顺时针旋转,'A'逆时针旋转  手臂:'s'顺时针旋转,'S'逆时针旋转手掌:'d'顺时针旋转,'D'逆时针旋转大拇指:'g'向外翻转,'G'向内翻转大拇指指尖:'t'向外翻转,'T'向内翻转食指:'h'向内,'H'向外食指指尖:'y'向外翻转,'Y'向内翻转中指:'j'向内,'J'向外中指指尖:'u'向外翻转,'U'向内翻转无名指:'k'向内,'K'向外无名指指尖:'i'向外翻转,'I'向内翻转小指:'l'向内,'L'向外小指指尖:'o'向外翻转,'O'  调用显示模型   voiddisplayglutReshapeFunc  可以重新构造窗口  voidreshapeglutKeyboardFunc   调用键盘函数  voidkeyboard                glutMainLoop三、、源程序与注释#include<iostream>#include"gl/"//添加公用库,不然无窗口也无法使用键盘//一些函数要求OpenGL的类型作为参数,GLfloat,32-bit浮点GLfloatrotShoulder=; //肩 -45~90GLfloatrotElbow=; //肘 0~160GLfloatrotWrist=; //腕 -80~80//以下取值范围为0~90GLfloatrotFinger10=; //拇指 和手掌相联的关节GLfloatrotFinger11=; // 手指上的关节GLfloatrotFinger20=; //食指GLfloatrotFinger21=;GLfloatrotFinger30=; //中指GLfloatrotFinger31=;GLfloatrotFinger40=; //无名指GLfloatrotFinger41=;GLfloatrotFinger50=; //小指GLfloatrotFinger51=;voidinit(){staticGLfloatlight0_position[]={,,,};staticGLfloatlight0_diffuse[]={,,1