我已经有两个移动圆圈的代码可以正常反弹,但是当两个移动圆中的一个是静态且不移动的情况下应用相同的代码时,移动的圆圈似乎围绕静态运行一。我该如何解决这个问题?
答案 0 :(得分:3)
如果您有一个从墙上反弹的圆圈的代码,您可以通过找到与圆圈之间的接触点处的静态圆相切并且假装移动的圆圈从运行的墙上反弹的线来近似它沿着那条线。
答案 1 :(得分:2)
文章2-Dimensional Elastic Collisions提供了解决问题的矢量方法。特别是,“速度的切向分量不会因碰撞而改变,因为沿着与碰撞表面相切的直线没有力。速度的正常分量经历一维碰撞”,这保留了动量和动能。有一个Java实现here。