多对碰撞点的碰撞处理

 假设:你已经熟悉单点带摩擦冲量问题。

  对于有多对碰撞点的碰撞处理工作如下。

  首先,根据牛顿碰撞定律将每对碰撞点的碰后相对速度算出来 。然后碰撞冲量将会在一个迭代循环中计算出来。在第i次迭代时,对于每一组碰撞点,我们将测试碰前相对速度 是否已经达到了之前求出的相应的碰后相对速度 。如果是,我们就直接处理下一对碰撞点。否则就按老样子计算冲量 ,并且作用在刚体上。直到所有对碰撞点都不需要计算。

另外,为了防止碰撞物体相互sticking,必须保证在每次迭代中,每对碰撞点的合冲量必须在正法向量方向,即:

 

如果上式在i次迭代时成立,而在第i-1 次迭代时不成立,那么则需

 

就是说

 

  对了,别忘了摩擦冲量。摩擦冲量是在碰撞法向冲量的基础上产生的,因此,摩擦冲量要和碰撞冲量在同一个迭代循环中求出。它的计算是基于Coulomb摩擦力法则的。如果切线相对速度分量 不是0。我们会计算一个冲量来模拟动摩擦力,方向是切线速度的相反方向,切线向量t我们用法向量n和相对速度的向量三重积算出来。在第i次迭代中,一对碰撞点的摩擦冲量可以由下式算出:


其中 就是动摩擦系数。在我们把这个冲量作用到刚体上碰撞位置前,必须保证切线速度t的相反方向,因为摩擦力是使接触点的相对速度减小的。那么允许的极端情况就是摩擦冲量使切线相对速度为0。即:

 

好了,考虑上 ,即:

 

posted @ 2007-07-05 17:00  Yuri  阅读(1125)  评论(3编辑  收藏  举报