慢羊羊的空间

无为,无我,无欲,居下,清虚,自然

力学:弹跳球模拟程序

本程序根据物理原理模拟一个球自由落体并持续弹跳的效果,小球只受重力影响,忽略空气阻力,反弹时能量损耗 10%。

程序源代码如下:

////////////////////////////////////////////////////////////////////
// 程序名称:物理反弹球模拟程序
// 编译环境:VC6.0 / 2010,EasyX_20200520(beta)
// 作  者:yw80@qq.com
// 最后修改:2012-3-29
//
#include <graphics.h>
#include <conio.h>

int main()
{
	double h = 300;				// 高度
	double v = 0;				// 速度(方向向下)
	double dv = 9.8 / 50;		// 加速度(每 1/50 秒)

	// 初始化绘图窗口
	initgraph(640, 480);

	// 画地平线
	line(100, 421, 540, 421);

	while(!_kbhit())
	{
		v += dv;				// 根据加速度计算速度
		h -= (v - dv / 2);		// 计算高度

		// 如果高度低于地平线,实现反弹,速度方向取反
		if (h <= 0)
		{
			h += (v - dv / 2);
			v = - v * 0.9;		// 反弹时能量损耗 10%
		}

		// 画绿色球
		setlinecolor(GREEN);
		circle(320, 400 - int(h), 20);

		Sleep(20);				// 延时(每帧延时 1/50 秒)

		// 擦掉球
		setlinecolor(BLACK);
		circle(320, 400 - int(h), 20);
	}

	// 关闭绘图窗口
	closegraph();
	return 0;
}
分享到

Comments (1) -

  • 这个要是抛去那个能量损耗该怎么写啊