- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《计算机程序训练》设计说明书.doc
《计算机程序训练》
设计说明书
指导老师:王瑛
姓名:刘 开
学号0805020201
日期:2010-6-17
一、题目
编制曲线轨迹动画程序
画一圆的外摆线,使小五角星在曲线轨迹上移动,
a,b,t由键盘输入,输入的数据送文件保存,按回车键程序结束(功能延伸:改变数据文件的内容后,再根据数据文件里的数据绘制外摆线)
二、问题描述:
1、画一圆的外摆线,摆线方程如下:
2、a,b,t由键盘输入,输入的数据送文件保存,按回车键程序结束。
3、画一个五角星。
4、使小五角星在曲线轨迹上移动
5、功能延伸:改变数据文件的内容后,再根据数据文件里的数据绘制外摆线
三、系统设计说明
一)、系统用到的功能分析:
程序设计一般由两部分组成:算法设计和数据结构,合理地选择和实现一个程序结构和处理这些数据结构有同样的重要性,主要包括如下:
#includegraphics.h /*图形处理函数*/
#includemath.h /*插入数学头文件 #includebios.h /*磁盘输出函数*/
#includestdio.h /*标准库函数*/
#define PI 3.1415926 /* 宏定义 PIfloat th=PI/180 /*定义全局变量 th
struct canshu
{
int a;
int b;
int t;
}canshu; /*定义全局变量
float period; /*定义全局变量前面讲到的数据输入和输出是以中端为对象的,当程序关闭后,数据也丢失了,所以为了能随时查阅数据,必须将数据输出到磁盘文件上保存起来,使用时再从磁盘中读入到内存中,这就用到了磁盘文件的读写操作。delay()时间延迟函数
通过调用该函数确定五角星在摆线上运动速度的快慢
8、cleardevice()清屏函数
擦除整个图形屏幕并将光标移到原点
9、line()画直线函数
用当前颜色当前画线类型和宽度,在所示坐标之间画一条直线不修改光标当前位置,
10、floodfill()图形填充函数
用当前选定的刷子在指定的设备场景中填充一个区域。区域是由颜色crColor定义的
二)、系统包括的功能模块,模块功能描述,各模块间的层次结构(即相互调用关系)以及模块之间的信息交换问题。
三、算法设计
1、主函数中调用scanf()函数,实现数据的输入。
2、通过调用save(),实现文件的保存。
3、通过调用drawcurve(),画出圆的外摆线。
4、通过调用star()画出五角星。
5、通过for循环不断改变传入star的值,实现五角星在外摆线是上的运动。
四、参考文献
1、《计算机绘图》刘静华、王永生主编,新编计算机绘图。北京航空航天大学出版社,1998。
2、《计算机图形学》何援军著。机械出版社2006-01-01。
五、源程序代码
#includegraphics.h
#includemath.h /* 插入数学头文件 */
#includebios.h
#includestdio.h
#define PI 3.1415926 /* 宏定义 PI */
float th=PI/180; /*定义全局变量 th */
struct canshu
{
int a;
int b;
int t;
}canshu;
float period=2*PI;
int xf(float T)
{ int f;
f=320+(canshu.a+canshu.b)*cos(T)-canshu.b*cos((canshu.a+canshu.b)/canshu.b*T);
return(f);
}
int yf(float T)
{int f;
f=200-((canshu.a+canshu.b)*sin(T)-canshu.b*sin((canshu.a+canshu.b)/canshu.b*T));
return(f);
}
void drawcurve()
{
float A,step;
A=0;
step=PI/540;
do{
A=A+step;
putpixel(xf(A),yf(A),WHITE);
}
wh
原创力文档


文档评论(0)