2013-02-15 53 views
1

目前,我正在做一个2D游戏,游泳池我必须使用真实的物理模拟。到目前为止,我已经完成了圆形碰撞和弹性碰撞,但是我想要一个能够找到碰撞响应速度的公式,这种公式在预先感谢球不同点碰撞时会有所不同。如何找到圈碰撞响应

回答

3

有许多方法,但如果你能负担得起,使球重叠的位(即,使球的一部分“进入”对方),你可以把它变成一个弹簧阻尼器系统和解决Hooke's law

由于胡克定律给你的力量,你需要整合它找到的势头。动量除以质量就是你正在寻找的速度。

看看this游戏开发的春天物理学的优秀介绍(他也有一个介绍数值积分的链接)。

编辑:如果你正在寻找一个切实可行的解决办法,我建议Box2D physics engine

+0

不,这不是什么实际我的意思是,我想找到碰撞响应角度。 http://en.wikipedia.org/wiki/File:Elastischer_sto%C3%9F_2D.gif – user2028359 2013-02-15 05:38:53

+0

@ user2028359 - 那么你应该改变你的问题,因为它说**“碰撞响应速度”** – Aesthete 2013-02-15 05:41:51

+0

@ user2028359我相信通过这种方法,您还可以提取角度:它是物理引擎在碰撞过程中计算加速度的方向。如果您将加速度(或力)除以其标准,则您具有碰撞角的正弦和余弦。有一个复杂因素,因为碰撞期间加速度会发生变化(碰撞不是瞬时的)。还要注意,使用弹簧阻尼系统不需要直接计算角度(除非您希望它们适用于游戏内逻辑)。 – darque 2013-02-15 06:26:10

-1

池碰撞可以被视为整个板弹性碰撞,摩擦减慢其运动。

唐;吨认为在垂直于圆表示的碰撞响应。使用载体将缓解这个问题。

圆圈碰撞速度响应很容易: 1.当检测到碰撞时 2.找出朝向另一个球的球的法向速度。 3.交换两个球 4之间的正常速度解决x和y方向的速度

一个非常有用的网站找到载体方面的速度响应:http://archive.ncsa.illinois.edu/Classes/MATH198/townsend/math.html