- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三讲 color
可视化仿真与虚拟现实
第三讲
上一讲回顾
平面图形
点
线
填充多边形
状态机
颜色
线型
线的粗线
点的大小
封装
函数封装
文件封装
示例
a1- 曲柄滑块
本讲内容
字符的显示
二维动画
物理仿真与动画显示
弹簧质量的运动仿真
练习
1.字符的显示
位图字体
用二值像素图案表示;
字体放大会走样;
显示速度快。
轮廓(矢量)字体
用线和圆弧等几何曲线表示;
数据量少,只记录线的端点、圆弧的中心和半径;
美观,缩放不失真;
需要光栅化,影响显示速度。
Opengl显示字符的函数
位图字符函数:
glutBitmapCharacter(font, character)
font:指定字型,常量(如GLUT_BITMAP_8_BY_13)
Character:字符的ASCII码值
轮廓字符函数:
glutStrokeCharacter(font, character)
font:指定字型,常量(如GLUT_STROKE_ROMAN)
Character:字符的ASCII码值
显示一个字符
示例程序
对a1中程序补充字符显示
2.二维动画
原理:在应用程序窗口播放当前帧时,程序已在另一缓冲区生成了下一帧图象数据。当前一帧图象显示完毕时,应用程序只要将在另一缓冲区已经生成的图象拷贝到屏幕上即可。
特点:这种方式可加快动画的播放速度,但需要较大内存。
先在后缓冲区绘图
前一张画面
后缓冲区完成后,整拷贝到前缓冲区
前缓冲区的图整个被覆盖
二维动画routine
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
// … 绘制场景
glutSwapBuffers();
}
void main ( int argc, char** argv )
{
glutInit ( argc, argv );
glutInitDisplayMode ( GLUT_RGB | GLUT_DOUBLE ); // 双缓存显示模式,支持动画
glutInitWindowSize ( 500, 500 );
glutCreateWindow ( “动画程序框架 );
glClearColor(0,0,0,0);
gluOrtho2D(0.0, 400.0, 0.0, 300.0);
glutDisplayFunc ( display );
glutIdleFunc( display ); // 闲时处理,支持动画
glutMainLoop( ); // GLUT主循环
}
动画与非动画的区别
需要双缓冲
需要Idle回调函数 glutIdleFunc
需要场景更新display函数中的
动画场景
静态场景
glutInitDisplayMode(GLUT_SINGLE|…);
glutInitDisplayMode(GLUT_DOUBLE|…);
glutIdelFunc
无
glutSwapBuffers();
glFlush();
glutInitDisplayMode ( GLUT_RGBA | GLUT_DOUBLE );
glutSwapBuffers();
3.物理仿真与动画显示
一切动态物理系统均用微分方程描述
一阶微分方程:
以抛物线运动为例:
一阶微分方程的求解
计算机不能进行连续问题的求解,需要进行离散化。即在若干离散的时间点上,用差分方程代替微分方程。
微分方程最简单的离散化方法:向前欧拉法
抛物线运动的欧拉方法
示例
a2——球的抛物线运动
4.弹簧质量的运动仿真
x
练习
漫天雪花
乒乓球在盒子里的弹跳动画(18分)
至少有一个乒乓球;
受重力影响
与至少左右下三个面碰撞,并回弹
当碰到墙壁后,发出声音
(参考: /view/3ce2fcc258f5f61fb7366608.html )
v
文档评论(0)