无需登录 数据私有 本地保存

弹跳球动画工作室 - 设置重力/弹性

23
1
0
0
0 个球 60 FPS
仅影响新创建的球
点击画布:在点击位置创建新球 拖拽球:像弹弓一样给球初速度 右键球:删除该球
常见问题与知识点

弹跳球模拟器是一个基于真实物理引擎的交互式动画工具。它使用牛顿力学模拟球在重力场中的运动,包括自由落体、碰撞反弹、能量损耗等物理现象。球受到重力加速度的作用持续向下加速,当球撞击地面或墙壁时,根据弹性系数计算反弹速度。弹性系数为1.0时球保持100%的能量(完全弹性碰撞),小于1.0时每次碰撞都会损失部分能量,球最终趋于静止。

重力参数以地球重力加速度(g ≈ 9.8 m/s²)为基准单位。值为1.0时模拟地球表面重力,球以约9.8m/s²的加速度下落。月球重力约为0.16g,球下落明显更慢,弹跳更高更持久;木星重力约为2.5g,球下落极快,弹跳低矮且快速衰减。微重力(0.05g)模拟太空环境,球几乎飘浮。改变重力参数可以帮助直观理解不同天体表面重力对物体运动的影响。

弹性系数(Coefficient of Restitution)取值范围0到1,表示碰撞后速度保留的比例。系数为1.0时是完全弹性碰撞,球会永远弹跳到相同高度(理想情况,无空气阻力)。系数为0.7时每次碰撞保留70%的速度,弹跳高度约为之前的49%(因为高度与速度平方成正比)。系数越低能量损耗越快。现实中,橡胶球的弹性系数约0.7-0.9,网球约0.7,黏土球约0.1。本模拟器中,球最终停下来是因为能量在每次碰撞中逐渐耗散,同时存在微小的地面摩擦。

在任意球上按住鼠标左键并拖拽(移动端:触摸并滑动),你会看到一条弹弓线连接按下位置和当前位置。释放后,球会沿着从释放位置指向按下位置的方向飞出去,速度与拖拽距离成正比——就像拉弹弓一样。拖拽距离越大,球的初速度越快。这个交互模拟了弹性势能转化为动能的过程。你也可以在动画运行中随时抓取移动中的球来改变它的轨迹。

本模拟器涉及多个经典力学核心概念:
重力加速度:vy += g × Δt,速度随时间线性增加
动能与势能转换:下落时势能→动能,上升时动能→势能
动量守恒与碰撞:碰撞瞬间速度反向,弹性系数决定能量保留
能量耗散:非完全弹性碰撞中机械能转化为热能和声能
抛物线运动:水平匀速+垂直加速的合成运动
这些原理使用欧拉积分法在每帧进行数值计算,使用requestAnimationFrame实现流畅的60FPS动画。

本工具完全支持移动端触摸操作点击画布创建球,触摸拖拽球给初速度,长按球可触发删除(部分设备)。所有滑块和按钮都针对触屏优化,间距充足。画布高度在移动端自动调整为340px以保证良好可视性。建议在横屏模式下使用以获得更宽广的操作空间。移动端重力预设按钮可快速切换不同重力环境。