OpenGL时钟,右键变颜色选读.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算机图形学》课程设计报告 题目名称: 编程实现时钟运动 专 业 计算机科学与技术 班 级 13-04 学 号 姓 名 指导教师 2016 年 1 月 13 日 目录 一、设计内容与要求 1 1.1 设计题目 1 1.2 设计内容 1 1.3 设计目标 1 二、方案设计 1 2.1 总体方案设计 1 2.2 过程流程图 2 三 3 3.1 程序设计原理及说明 3 3.1.1 表盘圆利用Bresenham算法 3 3.1.2 时针、分针和秒针的直线画法 3 3.1.3 颜色的添加 3 3.1.4 获取系统时间 3 3.1.5小刻度及整点时间数字添加 4 3.1.6改变颜色及恢复颜色 4 3.2 程序主要源代码 5 四、程序运行说明 18 4.1 程序运行结果分析 18 4.2 程序运行结果图例 18 五、总结 19 5.1 程序结构优缺分析 19 5.2 程序改进方案与展望 19 5.3 心得体会 20 六、参考资料: 20 一、设计内容与要求 1.1 设计题目 编程实现时钟运动 1.2 设计内容 设计一个可以获取系统时间的简易时钟,通过程序编写时钟的表盘、时针、分针、秒针和整点数字。钟表的样式根据自己的喜好设计,看起来简洁大方,还应该美观。时钟设计的重点在于如何获取系统的时间,表针之间的逻辑关系,时钟的模拟运行以及颜色的改变与恢复。 1.3 设计目标 时钟几乎是每个人生活中必备的生活用品。时钟虽小确非常重要。一款良好的时钟可以给人们带来极大的便利。 这次设计的目标是能够获取系统时间,简洁美观,能够清楚地实现时针,分针,以及秒针的辨识和运转。并且能够通过右键改变时针以及表盘的颜色。 二、方案设计 2.1 总体方案设计 编程实现时钟运动,通过使用OpenGL以及图形学Bresenham的算法画出表针和表盘,并添加刻度。使用 OpenGL颜色模型中的RGBA模式来给表盘等添加颜色来达到美观并用于区分表针,来完成表针的运动。然后通过添加函数来获取系统时间。并通过点击右键菜单实现时钟背景与时针颜色的转换。 2.2 过程流程图 详细设计 3.1 程序设计原理及说明 3.1.1 表盘圆利用Bresenham算法 Bresenham画圆算法适合于生成整圆,它使用8路对称法,只计算出90°~45°的点,移动方向为+x,-y。设(Xi,Yi)是扫描到第i步时选定的坐标,下个被选定的可能是T或S。如图: P T S Bresenham画法1/8圆弧示例 3.1.2 时针、分针和秒针的直线画法 由于时针、分针和秒针是随时间运动着的,而且其中一端位于固定点在圆盘中心,所以,只要确定另一端的移动点便可画出。 3.1.3 颜色的添加 再根据OpenGL颜色模型定义当前颜色。设置当时钟运行时交换的菜单,运行程序时可变换时钟背景与时针的颜色。最后再设置一个恢复菜单恢复开始时表盘与指针的颜色。 3.1.4 获取系统时间 获取系统时间用到函数_strtime,它的功能为获取当前系统时间(不包括日期),函数以字符指针形式为返回。例如: #includetime.h #includestdio.h #include conio.h void main() { char Now_time[30]; printf(%s,_strtime(Now_time)); getch(); } 运行结果将打印出当前时间。 3.1.5小刻度及整点时间数字添加 在表盘上添加数字用到函数glutBitmapCharacter(font , character),它是glut工具函数,用于在glut窗口某位置显示字符。由于是glut内置函数,功能有所限制,只能显示英文字符,而且字体、大小都不能任意设置。 //用OpenGL绘制的时钟 #include GL/glut.h #include windows.h #include math.h #include stdlib.h #include time.h #include iostream.h #includesstream #define changecolor 1 #define resumecolor 2 #define quit 3 float br=0.0,bg=0.0,bb=0.0; //定义变量用来改变颜色 int winheight=768,winwidth=600; int

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档