关于两个球的碰撞检测,怎么样做才更有效率?(40)

L

L.Ming

Unregistered / Unconfirmed
GUEST, unregistred user!
两个球,在一大球面上以不同的方向直线运动,因此,这两个球的运动轨迹必定相交。已知:两个球质量为m,半径为r,速度v1,v2,当前位置分别为A,B,两球预计的运动轨迹球心交叉点为C,AB,AC的长度已经知道,∠ACB也知道。如何检测他们是否碰撞?如果碰撞,他们的碰撞点在哪个位置?有人说,如果AB/v1=AC/v2,他们就碰撞了,否则不为碰撞。其实并不是这样,他们忽略了球的大小。也有人说,检测两球球心距离,球心为2r的时候,两球碰撞,但是说得容易,做起来难,两球球心为2r的时候,我知道是碰撞了,但我总不能不停的检测吧,这样的效率应该很低。那朋友说得很对,两球球心距离为2r时,他们碰撞了,但他们的碰撞位置呢?∠ACB和2r作为对边长,形成一个三个形,他们的任何一个点都有可能发生碰撞是,同时,亦可能在∠ACB的对角部分发生对碰。对这部分的数学知道,现在了解也生疏了,你们有什么好的办法预计碰撞与计算碰撞位置?
 
朋友,这个题目既有物理要求,也有数学要求,还有计算机编程要求,40分太少了。根据当前位置,运动速度,以及夹角,应该可以获得一个与时间有关的两者之间的球心距离函数X=F(t),由此得出反函数 t=G(X),然后取X=2r,计算得到t。得到t之后,再计算位置就方便了。这个问题主要是要求数学功底要好。
 
如果是等于的话你可能要错
 
这个是碰撞检测算法。-----------------------去这里看看 www.gimido.com
 
to cdyxl:大哥,你叫我去看那个什么电热棒干什么,这与解题有什么关系?
 
在一大球面上运行,直线运动?一晕(球面上是直线运动?)。预计交叉点为C,AB、AC长度已知,如果AB/v1=AC/v2,他们就碰撞了?二晕(画了画图,ab是两球的距离吧,不理解)。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
613
import
I
D
回复
0
查看
920
DelphiTeacher的专栏
D
顶部