Processing 两物体的法向力

Processing 两物体的法向力,processing,game-physics,Processing,Game Physics,我正在做一个模拟的“游戏”,有许多圆圈在加工过程中被自己的重力吸引在一起。当几个物体坐在一起并不断接触时,它们将开始相互穿透,因为它们正朝着它们的集体质心移动 我如何计算并应用法向力来阻止这种情况发生?我已经试着找出两个物体是否接触,并在它们之间施加平行于方向的力,该力根据它们的净力进行缩放。这导致他们稳定地坐了一会儿,然后开始旋转和移动,似乎是随机的。我也尝试过根据它们的相对速度来缩放力,但那根本不起作用 tl;dr在给定质量、初始力矢量和相对位置的情况下,如何计算两个(或多个)自由移动球体之

我正在做一个模拟的“游戏”,有许多圆圈在加工过程中被自己的重力吸引在一起。当几个物体坐在一起并不断接触时,它们将开始相互穿透,因为它们正朝着它们的集体质心移动

我如何计算并应用法向力来阻止这种情况发生?我已经试着找出两个物体是否接触,并在它们之间施加平行于方向的力,该力根据它们的净力进行缩放。这导致他们稳定地坐了一会儿,然后开始旋转和移动,似乎是随机的。我也尝试过根据它们的相对速度来缩放力,但那根本不起作用


tl;dr在给定质量、初始力矢量和相对位置的情况下,如何计算两个(或多个)自由移动球体之间的法向力

不容易解决。一种方法是迭代的。创建一个联系人列表,例如3个联系人中的OBJ a、b、c将是
ab
bc
ca
,每对依次沿它们之间的直线移动(不要用力),使它们只需接触即可。每一双都做。然后重复。重复次数越多,解决方案越好。你必须确保解决方案是可行的。接触一个对象的数量不能大于可容纳的数量。注:仍然无法保证解决方案。你可以在适当的位置(相对于一个抽象的质心对象)固定那些离质心最近的物体,以减少解的振荡……这仍然会导致重叠。这看起来更像是一个数学问题,而不是一个编程问题。我会先研究一下你想要实现的算法,然后再考虑如何用代码实现它。