- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
正弦曲线实验报告Visualc可视化程序设计[实用论文]
华 南 师 范 大 学
数 学 科 学 学 院
实 验 报 告
实验名称 实验物体沿正弦曲线运动 课程名称 Visual c++可视化程序设计
1.实验目的
(1)初步熟悉应用windows API函数进行编程的入门,编写简单的Windows应用程序,建立窗口、句丙,认知消息循环、画笔、画刷,建立坐标。
(2)实验物体沿正弦曲线运动,该物体为一个大小渐变以及颜色都会变化的小球,变化的的转折点是正弦曲线一个完整周期(2∏)里的四分之一,二分之一,和四分之三处(即∏/4; ∏/2; 3∏/4处)
(3)通过放胶片电影的原理实现物体沿正弦曲线运动。胶片电影有原理是在规定时间(一般为1秒)播放24幅连续的画面,由于人的视觉暂留,所以人们在观看电影时,看到的就不是一幅一幅的画面,而是丰富精彩的场景。本程序通过调用sleep(100)函数使程序暂停0.1秒。当i100时调用InvalidateRect刷新用户区发送WM_PAINT消息,这样使得WM_PAINT处理程序不断被调用,像电影播放原理那样呈现动态效果。
2.实验环境(软件、硬件及条件)
硬件:基于CPU:P4 的lenove品牌PC机硬盘40G,内存512MB
软件Winxp操作系统.visual c++6.0编译平台
3.实验方法
(1)生成正弦曲线。把正弦曲线的横坐标分成100等分点,坐标计算如下:
for(int j=0;j100;j++)
{
lpSin[j].x=(long)(j*2*Pi/100*60);
lpSin[j].y=(long)(dfRange*sin(j*2*Pi/100));
}
振幅dfRange取为100。
(2)实现小球沿正弦曲线运动。具体做法是,数组lpSin[100]的100个位置中,分成四份,每份25个位置,每一个值是圆心移动的坐标位置。定义一个全局变量i在每个周期中记录和变动当前圆心的位置从而改变整个圆的位置。做法如下:
long i=0,j=0,a=0;通过WM-PAINT处理调用BeginPaint函数获取设备环境句柄,全局变量i自增,在正弦曲线一个完整周期(2∏)里的四分之一时,编写代码如下:
if(i25)
{
hPen=CreatePen(PS_DASH,1,RGB(255,0,0));
hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,0,0));
lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);
}
实现红色小球渐变过程。
在正弦曲线一个完整周期(2∏)里的四分之二时,编写代码如下:
else if(i50)
{
hPen=CreatePen(PS_DASH,1,RGB(0,255,0));
hBrush=CreateHatchBrush(HS_DIAGCROSS,RGB(0,255,0));
lRadious=(long)(dfRange*0.2+24%25*dfRange*0.4/25-i%25*dfRange*0.4/25);
}
实现绿色小球渐变过程。
在正弦曲线一个完整周期(2∏)里的四分之三时,编写代码如下:
else if(i75)
{
hPen=CreatePen(PS_DASH,1,RGB(0,0,255));
hBrush=CreateHatchBrush(HS_CROSS,RGB(0,0,255));
lRadious=(long)(dfRange*0.2+24%25*dfRange*0.4/25-24%25*dfRange*0.4/25-(i-25)%50*dfRange*0.4/25);
}
实现蓝色小球渐变过程。
在正弦曲线一个完整周期(2∏)里的最后一个周期中,编写代码如下:else
{
hPen=CreatePen(PS_DASH,1,RGB(255,255,0));
hBrush=CreateHatchBrush(HS_VERTICAL,RGB(255,255,0));
lRadious=(long)(dfRange*0.2+24%25*dfRange*0.4/25-24%25*dfRange*0.4/25-49%50*dfRange*0.4/25+i%25*dfRange*0.4/25);
}
实现黄色小球渐变过程。
(3)在认知程序的基础上实现小圆的往复循环运动,具体做法是:改为long i=0,j=0,a=0;
,把i++;改为
if(a%2==0)
{
i++;
if(i==99)
a++;
}
else
{
i--;
if(i=
您可能关注的文档
- Super400业务简介……...…….ppt
- sth被指定.ppt
- 针对学生薄弱点拟定专题复习.doc
- Simbel(阿布辛贝神庙).ppt
- SWAT模型及其在泾河流域的应用.ppt
- 针状焦公众参与调查表.doc
- S管理全员培训第一期.ppt
- 真菌的形状和构造.doc
- 真菌探究学习的课例.doc
- 真菌分类名 录.doc
- 2023年陕西省商洛市柞水县两河乡招聘社区工作者真题参考答案详解.docx
- 2023年陕西省延安市宝塔区青化砭镇招聘社区工作者真题参考答案详解.docx
- 2023年陕西省汉中市西乡县罗镇乡招聘社区工作者真题及参考答案详解.docx
- 2023年陕西省延安市洛川县永乡招聘社区工作者真题及答案详解1套.docx
- 2023年陕西省商洛市商州区三岔河乡招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省宝鸡市陇县八渡镇招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省延安市洛川县石泉乡招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省商洛市商州区沙河子镇招聘社区工作者真题附答案详解.docx
- 2023年陕西省咸阳市礼泉县赵镇招聘社区工作者真题及参考答案详解1套.docx
- 2023年陕西省商洛市丹凤县留仙坪乡招聘社区工作者真题及参考答案详解一套.docx
文档评论(0)