我目前正在制作一个 2D 台球游戏,我必须使用真实的物理模拟。到目前为止,我已经完成了圆形碰撞和弹性碰撞,但是我想要一个可以找到碰撞响应速度的公式,当球在不同点与其他球碰撞时会有所不同,这要提前感谢。
问问题
875 次
2 回答
3
有很多方法,但如果你能负担得起让球重叠一点(也就是说,让球的一部分“进入”另一个球),你可以把它变成一个弹簧阻尼系统并用胡克定律解决。
由于胡克定律给了你力量,你需要整合它才能找到动力。动量除以质量就是您要寻找的速度。
看看这个用于游戏开发的优秀弹簧物理介绍(其中也有他的数值积分介绍的链接)。
编辑:如果您正在寻找实用的解决方案,我建议您使用Box2D 物理引擎。
于 2013-02-15T05:23:02.447 回答
0
池碰撞可以被认为是整个板的弹性碰撞,摩擦减慢了它的运动。
不要以与圆的角度来考虑碰撞响应。使用向量将缓解这个问题。
圆-圆碰撞速度响应很容易: 1. 检测到碰撞时 2. 求出球朝向另一个球的法向速度。3. 交换两个球之间的法线速度 4. 求解 x 和 y 方向的速度
一个非常有用的网站,可以根据向量找到速度响应:http: //archive.ncsa.illinois.edu/Classes/MATH198/townsend/math.html
于 2013-02-17T21:30:03.727 回答