- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学设计
《计算机图形学》课程设计报告 题目名称: 机器人手臂 专 业 计算机科学与技术 班 级 学 号 姓 名 指导教师 王 玉 昆 2014年 6月 12 日 机器人手臂 一、设计内容与要求 1.1 设计题目 机器人手臂 1.2 设计内容 内容: (1)掌握动画基本原理; (2)实现三维几何变换及其组合; 功能要求: (1)利用glutWireCube创建机器手臂:上臂,前臂,带有手指的手 (2)编写三维旋转变换矩阵实现“上臂带动前臂转,前臂带动手转”的效果; (3)使用键盘的上下左右控制键各部分的旋转; 1.3 设计目标 通过课程设计,使学生具备通过具体的平台实现图形算法的设计、编程与调试的能力,完成对实验结果分析、总结及撰写技术报告的能力,达到: 巩固和实践计算机图形学课程中的理论和算法; 学习表现计算机图形学算法的技巧; 培养认真学习、积极探索的精神。 二、方案设计 2.1 总体方案设计 1.图形学基本原理 (1)几何变换相关原理 视点变换和模型变换在计算机图形学中统一称为几何变换。视点变换和模型变换只是考虑问题的出发点不同,最后变换的结果都是一样的。几何变换是指三维场景中的物体运动姿态的变化,包括物体的平移,旋转和缩放。在OpenGL中提供了3个命令函数来实现平移,旋转和缩放。它们是glTranslate(),glRotate(),glScale(),从而可以确定一个物体在场景中的位置,旋转角度和缩放比例。直接使用OpenGL中的矩阵操作函数可以实现几何变换,但是使用OpenGL中的变换函数,变换的速度要快得多。 (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向内翻转 2.3 过程流程图 五步初始化窗口的模式 调用 glutDisplayFunc 调用显示模型 void display glutReshapeFunc 可以重新构造窗口 void reshape glutKeyboardFunc 调用键盘函数 void keyboard glutMainLoop 三、详细设计 3.1、源程序与注释 #include iostream #include gl/glut.h//添加公用库,不然无窗口也无法使用键盘 //一些函数要求OpenGL的类型作为参数,GLfloat,32-bit 浮点 GLfloat rotShoulder = 0.0; //肩 -45~90 GLfloat rotElbow = 0.0; //肘 0~160 GLfloat rotWrist = 0.0; //腕 -80~80 //以下取值范围为 0~90 GLfloat rotFinger10 = 0.0; //拇指 和手掌相联的关节 GLfloat rotFinger11 = 0.0; // 手指上的关节 GLfloat rotFinger20 = 0.0; //食指 GLfloat rotFinger21 = 0.0; GLfloat rotFinger30 = 0.0; //中指 GLfloat rotFinger31 = 0.0; GLfloat rotFinger40 = 0.0; //无名指 GLfloat rotFinger41 = 0.0; GLfloat rotFinger50 = 0.0; //小指 GLfloat rotFinger51 = 0.0; void init() { static GLfloat light0_position[] = {1.0, 1.0, 1.0, 0.0}; static GLfloat light0_diffuse[] = {0.0, 1.0, 1.0, 1.0}; glClearColor(1.0, 1.0, 0.0, 0.0);//建立窗口被创建成为什么背景色黄色 glShadeModel
文档评论(0)