刚刚在看某一段游戏代码的时候,发现用到sin函数来控制一个物体的原地反复弹跳。

然后我就自然想到了自由落体,隐约记得高中物理老师讲过类似情况,所以想拿草稿纸算一遍,可惜作为计算机专业的学生,发现身边还真找不到纸,就只好在电脑上写公式算了。

假设弹跳高度为H,碰到地面速度反向,t时刻,高度为h = H * abs(sin(t)),这是代码中的表达式。如果是自由落体,那1/2 * (gT^2) = H,T = sqrt(2H/g),V = g * sqrt(2H/g) = sqrt(2Hg),h = Vt - 1/2 * (gt^2) =   sqrt(2Hg) * t - 1/2 * (gt^2)

糊里糊涂写了这么堆公式,也不知道对不对了。