圆之间的2d碰撞响应
|
我正在尝试计算2个碰撞球的新速度,但是在解决另一个问题之前,我无法做到这一点。
由于在数字世界中几乎不会发生真正的碰撞,因此我们总是会遇到“碰撞”球重叠的情况。
想象一下,有100个球随机运动,因此,如果我理解正确,程序应如下所示:
移动球(
x += vx
;y+= vy
;)
避免重叠(或完全碰撞)的球
将球“倒退”到那一刻
执行碰撞计算
如果以上正确,那么如何将“倒退”的球移动到第一次碰撞的位置?已知数据:
球的所有坐标(b[i].x
,b[i].y
)
X
和Y
球的速度(b[i].vx
,b[i].vy
)
避免重叠的球之间的距离(dist
)
我是否应该算出dist
到碰撞的最佳距离的百分比,然后简单地将x
和y
的坐标后移相同的百分比vx
和vy?
的百分比
没有找到相关结果
已邀请:
4 个回复
览幕堤分
和
。这些球的位置分别为
和
,速度为
和
。令ѭ14相对于ѭ15的相对速度为
。 我们想知道
小于
的情况,其中with25ѭ是矢量,它的矢量是第一个球的半径沿朝向第二个球的方向,而
则相反。 从ѭ15的角度来看,
以velocity29的速度运动。在时间
,位置
在位置
。 在以下情况下,球发生碰撞:
现在,从
到
,我们知道
例如:
和
,
和
,以及
和
然后
。碰撞发生在:
现在您有了碰撞的时间,弄清楚球在哪里很容易:-) 编辑以将vectormath放入伪代码中:
悸翠疮武昏
艾食魄轻县
薄响
要回复问题请先登录或注册