多对碰撞点的碰撞处理
假设:你已经熟悉单点带摩擦冲量问题。
对于有多对碰撞点的碰撞处理工作如下。
首先,根据牛顿碰撞定律将每对碰撞点的碰后相对速度算出来 。然后碰撞冲量将会在一个迭代循环中计算出来。在第i次迭代时,对于每一组碰撞点,我们将测试碰前相对速度
是否已经达到了之前求出的相应的碰后相对速度
。如果是,我们就直接处理下一对碰撞点。否则就按老样子计算冲量
,并且作用在刚体上。直到所有对碰撞点都不需要计算。
另外,为了防止碰撞物体相互sticking,必须保证在每次迭代中,每对碰撞点的合冲量必须在正法向量方向,即:
如果上式在i次迭代时成立,而在第i-1 次迭代时不成立,那么则需
就是说
对了,别忘了摩擦冲量。摩擦冲量是在碰撞法向冲量的基础上产生的,因此,摩擦冲量要和碰撞冲量在同一个迭代循环中求出。它的计算是基于Coulomb摩擦力法则的。如果切线相对速度分量 不是0。我们会计算一个冲量来模拟动摩擦力,方向是切线速度的相反方向,切线向量t我们用法向量n和相对速度
的向量三重积算出来。在第i次迭代中,一对碰撞点的摩擦冲量可以由下式算出:
其中
好了,考虑上 ,即: