你好,
可以通过判断小球边缘和窗口高度来实现
例如垂直下落,给小球y方向的初速度和加速度(模拟重力加速度),当小球的小边缘接触窗口底部时,将 y = -y;加速度不反向;当达到最高点及y方向速度为零,将y再反向向下落。
来回弹动关键在于 对边缘的判断,和速度方向的判断和计算
给小球类定义一个方法:碰撞;然后当周围环境的坐标到球心的距离等于小球的半径时,小球的运动路径算法就应该是轴对称的。先判断之前的运动方向,然后根据运动方向确定新的运动方向。这个其实就是线性方程做小球的运动轨迹而已。小球的起始跌落高度<input id="input" type="text" value=""/><input id="button" type="button" value="开始"/><div id="output"></div>
<script>
function sb(h,s,n){
return h<1?{n,s}:sb(h/2,s+h+h/2,n+1)
}
button.onclick=function(){
var gd=parseInt(input.value)
var res=sb(gd,0,0)
output.innerHTML="小球的回弹次数是"+res.n+"<br />小球走过的路程是"+res.s
}
</script>