一、实验的演示内容
演示了一个在真空状态下的自由落体运动。动画是设定在如下场景下完成的,由一个橡皮球从六百米的高空掉下来,做自由落体运动,每次撞击地面时候,小球的动能会损失一半,全部转化为小球的热能,热能体现在小球的温度上升。小球的初始温度是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);