池塘夜降彩色雨课程设计报告_第1页
池塘夜降彩色雨课程设计报告_第2页
池塘夜降彩色雨课程设计报告_第3页
池塘夜降彩色雨课程设计报告_第4页
池塘夜降彩色雨课程设计报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课课 程程 设设 计计 课程名称 数据结构 题目名称 1 6 池塘夜降彩色雨 难度 4 学生学院 计算机学院 专业班级 计算机科学与技术 12 学 号 学生姓名 指导教师 2010 年 7 月 7 日 池塘夜降彩色雨系统池塘夜降彩色雨系统 1 需求分析需求分析 设计一个程序 演示美丽的 池塘夜雨 景色 色彩缤纷的雨点飘飘洒洒地从 天而降 滴滴入水有声 溅起圈圈微澜 具体要求 1 雨点在空中的出现位 置 雨点大小 降落过程的可见程度 入水位置 颜色 最大水圈等 都是随 机确定的 2 多个雨点按照各自的随机参数和存在状态 同时演示在屏幕上 可以适当调整控制雨点密度 大小 涟漪和状态变化的时间间隔等参数 该系 统实现了池塘的夜晚 下起了五彩的雨点的自然现象 2 概要设计概要设计 根据题目要求的分析 可以将整个系统的数据类型定义如下 ADT graphList 数据对象 D ai ai Charset I 1 2 3 n n 0 数据 关系 R1 ai 1 ai D ai 1startX 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 rand 15 1 彩色的随机产生 p rainLineLenth rand 10 10 雨点大小的随即产生 p status 0 p water x p startX p water y p startY 随机产生的涟漪的位置 p water r p rand 45 随机产生涟漪的半径 p water curR rand 3 涟漪消失的半径 p water rainCircleStep rand 3 1 p next NULL return p Void recreat atDrop struct raindrop p 重复产生雨点 跟雨点开始的随机设置是一样的 Void creatRain void 重复雨点的产生 使之连续不断 用随机产生雨点 重复产生 使得雨点连续不断 void updateRainLineData struct rainDrop p 这个是每次下落雨点的数目 void drawRainLine struct rainDrop p 画出雨点的下落的轨迹 void clearRainLine struct rainDrop p 清除雨点的轨迹 if p curYstartX p startY p curX p curY if p curY 400 setcolor BLUE 到了水面之后用蓝色清除雨点的轨迹 line p startX p startY p curX p curY void rainDropDown struct rainDrop p 构造雨点的下落效果 如果发生坐标大于结束坐标 雨点的下落效果产生 if p curY p endY clearRainLine p p status 1 else clearRainLine p 清除原来雨点的轨迹 updateRainLineData p 产生新雨点的线路 drawRainLine p 画出新路线 void updateRainCircleData struct rainDrop p 水圈的消失半径 p water curR p water rainCircleStep void drawRainCircle struct rainDrop p 画出水圈的半径 包括颜色和大小 void clearRainCircle struct rainDrop p 消除水圈 由于池塘是蓝色的 所以用蓝色来刷新水圈的填充色 setcolor BLUE circle p water x p water y p water curR void fallToWater struct rainDrop p 这个是落水的动画 void rain void 下雨的动画 里面有个计时器 构造下雨的动画 void clearAll void 清除所有的东西 里面有个 closegraph 是用来关闭图像的 main 主函数 int w printf Input rainDrop Number 300 scanf d 输入雨量 小于 300 printf Input down Delay 50 scanf d 输入雨点下落速度 小于 50 randomize initgraphics setbkcolor BLACK 画出背景 setfillstyle 1 BLUE bar 0 390 640 480 构造池塘 creatRain rain clearAll 调用各个模块 否 是 开始 输入雨量 输入雨速 画夜幕池塘 产生雨点 雨点路径 清除路径 画出水圈 清除水圈 继续 关闭图像 结束 4 编码测试 输入界面 输入雨点数 雨速 输入雨量 50 雨速 1 输入雨量 150 雨速 1 5 设计体会 选题的时候 主要是这个主题吸引了我 池塘夜降彩色雨 一听名字就是要做 出一个动画出来的 所以很好奇做出来是什么效果 然后就想尝试一下 一接 触的时候无从下手 从来没有用过图形库 然后一开始用的是 vc 来编程 怎么 也弄不出来 后来发现 vc 中没有 tc 中的 graphics h 的库 然后就开始在网上找 关于这个库的资料 慢慢的从画一个圆圈入手 慢慢的把图形做出来 勉勉强 强的把效果弄出来了 能力有限 本来想加一个风的效果的 可是做不出来 只能做出夜降彩色雨 有点遗憾 这个程序中使用的就是简单的链表 采用带头结点的循环链表 仅需改变头尾 两个指针即可 creatRain drawRainLine 和 rainDropDown 以及确定链表中第 一个结点和之后一个结点的运算时间都是 O l 销毁雨点线路算法 clearRainLine 和销毁水圈算法 clearRainCircle 都是对每个元素调用一个 O 1 的 函数 因此都是 O n 也有简单的图表的应用 也有对链表的的应用 即双向 循环链表的使用 课程设计做完了 做的不完美 还有好多不足的地方 还有没有加上其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论