// 程序名称:物理反弹球模拟程序
// 编译环境:VC6.0 / 2010,2013,EasyX 20180727(beta)
// 作 者:鼠瓜
// 最后修改:2018-12-10
//
#include <graphics.h>
#include <conio.h>
void main()
{
double h = 300; // 高度
double v = 0; // 速度(方向向下)
double dv = 9.8 / 50; // 加速度(每 1/50 秒)
// 初始化绘图窗口
initgraph(640, 480);
// 画地平线
line(100, 421, 540, 421);
while (!_kbhit())
{
h -= (((v + dv)*(v + dv) - v*v) / (2 * 9.8));
//等时间内下落高度等于两速度平方差除于二倍加速度
v += dv;
// 如果高度低于地平线,实现反弹,速度方向取反
if (h <= 0)
{
h += (((v + dv)*(v + dv) - v*v) / (2 * 9.8));
v = -v * 0.9; // 反弹时能量损耗 10%
}
// 画绿色球
setcolor(GREEN);
circle(320, 400 - int(h), 20);
Sleep(20); // 延时(每帧延时 1/50 秒)
// 擦掉球
setcolor(BLACK);
circle(320, 400 - int(h), 20);
}
// 关闭绘图窗口
closegraph();
}
物理反弹球模拟程序
最新推荐文章于 2023-04-13 18:54:36 发布