力学现象动画演示——真空状态下的自由落体运动

来源:互联网 发布:ansible 支持windows 编辑:程序博客网 时间:2024/05/01 04:01

一、实验的演示内容

    演示了一个在真空状态下的自由落体运动。动画是设定在如下场景下完成的,由一个橡皮球从六百米的高空掉下来,做自由落体运动,每次撞击地面时候,小球的动能会损失一半,全部转化为小球的热能,热能体现在小球的温度上升。小球的初始温度是0摄氏度。因此小球撞击地面后又会反弹,然后上升到最高点再下降,重复撞击过程,小球温度会随着撞击地面次数的增多,不断上升。动画左边有一个温度计,显示小球的温度。

二、实现方式

    采用C语言和EaxyX图形库实现图形编程。具体的算法设计如下:将小球的运动分为下落和上升过程,每次动画间隔一秒的时间刷新一次,在这一秒内小球会在重力的作用下运动一段路程。当小球撞击地面会涉及动能损失一半,转化为热能,然后运动方向由下落转为上升,在上升到最高点时候,又会变为下降过程。具体计算小球相关参数的公式如下:


三、程序源代码

该程序需要在安装exayx图形库的环境下才能正确编译,否则会由于缺少库文件报错。

#include "stdio.h"
#include "math.h"
#include "easyx.h"
#include <graphics.h> 
#include "time.h"


void main()
{
double h=600,v=0,g=9.8,s=0,t=0,maxtime=0,c=0.2,q=0;
int direction=0,i=0;
char b[10];
maxtime=sqrt(2*h/g);
initgraph(640,640);
BeginBatchDraw();
while (1)
{
if (direction==0)//down
{

if (t+1<maxtime) //还未接触地面
{
t=t+1;
s=g*t*t/2;
solidcircle(400,620-(int)h+(int)s,5);

}
else
{
solidcircle(400,620-5,5);//发生碰撞,动能损失一半,转化为球的热能
q=q+g*h/(c*2); //球的温度升高
direction=1;
h=h/2;
t=0;
v=sqrt(2*g*h);
maxtime=v/g;
}
}
else  //up
{
if (t+1<maxtime)
{
t++;
s=v*t-g*t*t/2;
solidcircle(400,620-(int)s,5);
}
else
{
solidcircle(400,620-(int)h,5);//上升到最高点,又下降
t=0;
direction=0;
}
}
line(200,620,640,620);
line(640,10,500,50);
line(500,50,500,620);
rectangle(530,100,600,170);
line(565,100,565,170);
rectangle(530,270,600,340);
line(565,270,565,340);
rectangle(530,440,600,510);
line(565,440,565,510);


circle(300,620,5);
rectangle(295,115,305,615);
for(i=0;i<10;i++)
{
sprintf(b, "%d", 30000-i*3000);
outtextxy(195,115+i*50,b);
}


solidrectangle(295,615-(q/30000)*500,305,615);
FlushBatchDraw();
Sleep(500);
cleardevice();
}
}

四、动画演示截图

    可以从最后一张图看出,橡皮球的比热容是0.2的情况下,温度可以上升到30000摄氏度。


                                                                                       图1 动画截图1


                                                                                      图2 动画截图2


                                                                                     图3 动画截图3


                                                                                          图4 动画截图4


                                                                                             图5 动画截图5


                                                                                                     图6 动画截图6

0 0
原创粉丝点击