- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
池塘夜jiang系统
池塘夜降彩色雨系统
1 需求分析
设计一个程序,演示美丽的“池塘夜雨”景色:色彩缤纷的雨点飘飘洒洒地从天而降, 滴滴入水有声,溅起圈圈微澜。 具体要求: (1) 雨点空中的出现位置、雨点大小、降落过程的可见程度、入水位置、颜色、最大水圈等,都是随机确定的 ; (2) 多个雨点按照各自的随机参数和存在状态,同时演示在屏幕上。可以适当调整控制雨点密度、大小、涟漪和状态变化的时间间隔等参数。
该系统实现了池塘的夜晚,下起了五彩的雨点的自然现象。
2 概要设计
该系统旨在描绘一幅池塘夜雨的动态图,因此应该关注每一滴雨点:
(1) 每个雨点的存在周期可分为三个阶段从天而降、入水有声和入水涟漪,需要一个记录存储其相关参数、当前状态和下一状态的更新时刻。
(2) 雨点下降的可见程度应是断断续续、依稀可见;应是由里至外逐渐扩大和消失的。
(3) 每个雨点发生时,生成其记录,并预置下一个雨点的发生时间。
(4) 用一个适当的结构管理当前存在的雨点,使系统能利用它按时更新每个雨点的状态,一旦有雨点的水圈全部消失,就从结构中删去。
根据以上的分析,可以将整个系统的数据类型定义如下 ADT graphList {
数据对象:D={ai | ai Charset , I = 1,2,3,···,n, n≥0}
数据关系:R1={ai-1,ai | ai-1,aiD,ai-1ai, I =2,···,n}
基本操作: initgraphics(void)
操作结果;图形模式的初始化rainDrop *creatDrop(void)
操作结果;构造雨点drawRainLine(struct rainDrop *p)
初始条件:雨点已经操作结果;画雨点下落路线creatRain(void)
初始条件:雨点已操作结果;产生雨连续下落的效果updateRainLineData(struct rainDrop *p)
初始条件:雨点已经操作结果;雨点的下落过程and floatradius(struct rainDrop *p)
初始条件:雨点已经出现且落在湖面上
操作结果;水圈涟漪的设计
rainDropDown(struct rainDrop *p)
初始条件:雨点下落到湖面
操作结果;使雨点在落到湖面上消失
drawRainCircle(struct rainDrop *p)
初始条件: 水圈涟漪已存在
操作结果;水圈涟漪的画出
clearRainLine(struct rainDrop *p)
初始条件:雨点已经出现且已经画出了一段痕迹操作结果;清除雨点的滑落路线
雨滴的设置 3 详细设计
Struct rainCircle//定义水圈的相关数据
{
//横坐标、纵坐标、路线步骤、水圈半径
int x;//横坐标
int y;//纵坐标
int cutR;//水圈初始半径
int r;//水圈变化后的半径
int rainCircleStep;//水圈产生的步骤
}
Struct raindrop//定义雨点下落的过程的数据
{
int startX;//开始的横坐标
int startY;//开始的纵坐标
int endY;//结束的纵坐标
int curX;//每个雨点消失的横坐标
int curY;// 每个雨点消失的纵坐标
int rainColor;//雨点的的颜色
int rainLineStep;//雨点下落的路径
int rainLineLength;//雨点的长度
int status;//判断是否到达湖面
struct rainCircle water;//产生涟漪
struct raindrop *next;//指向下一颗雨点
}
Void initgraphics(void) //图形函数的初始化
{
int gmodegdiver;
gdriver=DETECT;
initgraph(gdriver,gmode,”D:\\TC”)
//其中gdriver和gmode分别表示图形驱动器和模式,“D:\\TC”是指的图形驱动程序所在的目录路径
}
Struct raindrop *creatDrop(void)//雨点开始产生时的随机设置
{
Struct raindrop *p;
P=(struct raindrop *)molloc(LEN);
p-startX=rand()%640;//随机产生的位置X
p-startY=rand()%430;//随机产生的位置Y
p-endY=430+rand()%50;//结束坐标
p-curX= p-startX;//每个雨点消失的横坐标
p-curY= p-startY;//每个雨点消失的纵坐标
p-rainLineStep=8://共分8个步骤
p-rainColor=ran
您可能关注的文档
最近下载
- ZXR10 M6000电信级路由器硬件手册.docx VIP
- 《输液导管相关静脉血栓形成防治中国专家共识》解读PPT课件.pptx VIP
- 高中英语_Being funny without saying a word教学课件设计.ppt
- 2024版育婴师培训全套课件完整版.docx VIP
- 子网掩码相关教学 子网掩码快速算法.doc VIP
- 什么什么踏地四字成语.docx VIP
- 力士乐卷扬减速机制动器安装拆解图文.pdf VIP
- 新能源汽车充电系统检修:车载充电机的认知与检修PPT教学课件.pptx
- 2025年度食品安全风险日管控、周排查、月调度记录表.pdf VIP
- (新版)消防设施操作员(初级)消防设施操作-考试题库(含答案).docx VIP
文档评论(0)