- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机图形学----弹跳的球体[文档在线提供]讲述
一、设计内容与设计要求
1.设计内容:
弹跳的球体:一个着色的三维球体,沿着一条给定的轨道(正弦衰弱曲线)不断弹跳并同时翻滚,要求按ESC停止转动翻滚按↑加快弹跳速度,按↓减慢弹跳速度。
2.设计要求:
在屏幕上不断地连续弹跳并同时翻滚,按↑加快移动速度,按↓减慢移动速度。
3.算法提示:
可用绘制三维曲面(规则曲面、参数方程为:x=Rsin(α)cos(β), y=Rsin(α)sin(β), z=Rcos(α),0≤α≤180,0≤β≤360)来设计球体的形状,用轴测图将它绘制到屏幕上,并对球面上的小方格进行填充,选择5—10个不同方位的球体图形用getimage()命令将它们的图象保存;对以后路径上的图形只需用命令Putimage()调出即可。其轨迹方程为:
z=A|sin(ωr+θ)|e-kr r=(x2+y2)1/2。
二、进度安排
第 18 周 星期一8 时:00分——11时:40分
星期三 8时:00分——11时:40分
星期四 8时:00分——11时:40分
星期五 8时:00分——11时:30分
附:
课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。
正文总字数要求在5000字以上(不含程序原代码)。
目 录
1.课题的主要功能 5
2.课题的功能模块的划分 5
2.1功能模块划分 5
2.2模块函数 5
2.2.1操作控制部分函数 5
2.2.2球体绘制函数 6
2.2.3球体运动轨迹函数 6
3.主要功能的实现、流程图 7
3.1功能实现 7
3.2流程图 7
3.2.1qiu的流程图 7
3.2.2绘制球体的程序流程图 8
3.2.3主程序流程图 9
4.程序调试 10
4.1程序运行调试分析 10
4.2程序运行结果 10
5.总结 10
6.附件(所有程序的原代码,要求对程序写出必要的注释) 10
6.1源程序清单 10
正文
1.课题的主要功能
本课题要求实现一个着色的三维小球在一定的空间内按照一条给定的轨道(正弦衰弱曲线)不断弹跳并同时翻滚。控制键为按ESC退出程序,按“↑”键完成运动加速,使得三维小球加快弹跳速度;按“↓”键完成运动减速,使得三维小球减慢弹跳速度。并且小球在屏幕中连续不断的按照给定的曲线函数跳动,且三维小球自身也要进行翻滚。
2.课题的功能模块的划分
2.1功能模块划分
该程序的主要模块分为如下部分:
操作控制部分:该部分主要是实现对屏幕的操作,达到功能要求中按“ESC”结束程序,按“↑”加快三维小球运动,按“↓”减慢三维小球的运动。
球体绘制部分:该部分实现三维小球的绘制,其具体的是对三维球体的形状、大小、经纬线、以及在三维球体中填充颜色。
球体运动轨迹控制部分:该部分是确定球体在屏幕上的运动轨迹,从而达到程序要求的功能。通过该部分,我们可以任意的对球体的运动轨迹进行设定,使得三维小球的运动丰富多彩。
背景控制部分:通过该部分,我们可以设定三维小球在什么样的背景下运动,对颜色的组合,使得背景更加丰富,从而完善程序的运行界面,达到美观的作用。
2.2模块函数
2.2.1操作控制部分函数
switch(key)
{
case ESC:return;
case UP:tt=tt*1.25;
break;
case DOWN:tt=tt/1.25;
break;
defualt:break;
}
2.2.2球体绘制函数
void teq(double theta)
{
double th;
th=theta*3.14159/180;
f[0][0]=0.87*cos(th);
f[0][1]=0.0; f[0][2]=-0.35*cos(th)-0.71*sin(th);
f[0][3]=0.0;
f[1][0]=-0.5;
f[1][1]=0.0; f[1][2]=-0.61;
f[1][3]=0.0;
f[2][0]=0.87*sin(th);
f[2][1]=0.0; f[2][2]=-0.35*sin(th)+0.71*cos(th);
f[2]
文档评论(0)