实验二OpenGL的简单动画..docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二OpenGL的简单动画.

实验二 OpenGL的简单动画 Lab2_animation 一、实验目的 1、掌握OpenGL的闲置函数 2、掌握OpenGL的时间函数 3、掌握OpenGL的简单动画功能。 4、掌握OpenGL的闲置函数与简单动画。 5、 了解OpengGL裁剪窗口、视区、显示窗口的概念和它们之间的关系。 6、进一步掌握OpenGL的基本图元的绘制。 二、实验环境 硬件要求: PC机,主流配置,最好为独立显卡,显存512M以上。 软件环境: 操作系统:Windows XP。 语言开发工具:Microsoft Visual studio 2008,Visual C++。 三、实验内容与要求 要求: 实验课上老师要求的效果截图、及其相应代码 拷贝到实验报告文档里。 WORD文档命名方式:学号姓名-实验序号-实验名称。 内容: 1、闲置函数的使用与简单动画。 (1) 旋转的六边形,如图3-1所示 阅读五 ,5.1)中 旋转的六边形样本框架程序,分析程序的实现步骤: 运行该程序,观察旋转动画效果。 思考: 如果要调整旋转速度,旋转更快或更慢,应该如何修改程序? 图3-1 (2) 线框六边形 在display 函数中 添加多边形模式设置语句观看效果。 glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); //线框模式 添加线宽语句观看效果 glLineWidth(2.0); //设置线宽 重回多边形填充模式: glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); //填充模式 (3) 在图形中添加字符Hello,观察结果;然后将Hello字符改为自己名字的拼音或英文名字。如图3-2所示。 提示:在图形中添加如下代码: glColor3f(1,0,0); //设置红色绘制颜色 glRasterPos2i(30,20); //定位当前光标,起始字符位置 glutBitmapCharacter(GLUT_BITMAP_9_BY_15,H); //写字符H glutBitmapCharacter(GLUT_BITMAP_9_BY_15,e); //写字符e glutBitmapCharacter(GLUT_BITMAP_9_BY_15,l); //写字符l glutBitmapCharacter(GLUT_BITMAP_9_BY_15,l); //写字符l glutBitmapCharacter(GLUT_BITMAP_9_BY_15,o); //写字符o (4) 变色技术举例: 在程序头部设置全部变量: int k=0; 在myidle函数中添加代码: if (k==1) { glColor3f(1,0,0) ; k=0; } else { glColor3f(1,1,0) ; k=1; } 然后在绘制函数中屏蔽原来的绘制颜色,运行查看效果 (5) 六边形静止,直线单独旋转,如图3-2所示。 要求: 1)修改前面的程序,使得六边形保持静止,以六边形中心为起点画一条不同颜色的直线,终点为六边形某一顶点,使得直线不停绕中心点旋转。代码保存下来备用。 思考:如果需要直线保持与机器时钟的秒针节拍吻合,应该如何修改? 提示:可用延时 Sleep()函数,例如 Sleep(1000)表示延时1秒,放在 myidle函数中 图3-2 2)时间函数的使用与简单动画。 将以上程序中的闲置函数替换为时间函数, 1、主程序中的glutIdleFunc(myidle); //注册闲置回调函数 改为 glutTimerFunc(1000, mytime,10); //1000毫秒后调用时间函数 mytime 2、 myidle()闲置回调函数 改为时间函数 mytime( t) 在程序顶部,函数声明语句也要相应更改: void myidle(); 改为 void mytime( int t); 3. 在时间函数 mytime(t)最后,再添加 glutTi

文档评论(0)

sfkl + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档