相关疑难解决方法(0)

加速球体之间的碰撞检测

我正在编写一个物理引擎/模拟器,它结合了3D太空飞行,行星/恒星引力,船舶推力和相对论效应.到目前为止,它的进展非常顺利,但是,我需要帮助的一件事是碰撞检测算法的数学计算.

我正在使用的运动的迭代模拟基本如下:

(注意:3D矢量是全部大写.)

For each obj

    obj.ACC = Sum(all acceleration influences)

    obj.POS = obj.POS + (obj.VEL * dT) + (obj.ACC * dT^2)/2     (*EQ.2*)

    obj.VEL = obj.VEL + (obj.ACC * dT)

Next
Run Code Online (Sandbox Code Playgroud)

哪里:

obj.ACC is the acceleration vector of the object
obj.POS is the position or location vector of the object
obj.VEL is the velocity vector of the object

obj.Radius is the radius (scalar) of the object

dT is the time delta or increment
Run Code Online (Sandbox Code Playgroud)

我基本上需要做的是找到一个有效的公式,从上面的(EQ.2)派生出两个对象(obj1,obj2),并告诉他们是否碰撞,如果碰到,在什么时候.我需要确切的时间,以便我可以确定它是否在这个特定的时间增量(因为加速器在不同的时间增量会有所不同),并且还可以找到确切的位置(我知道该怎么做,给定时间)

对于这个引擎,我将所有对象建模为球体,所有这些公式/ algortithim需要做的是弄清楚在哪些点:

(obj1.POS - …
Run Code Online (Sandbox Code Playgroud)

simulation math 3d physics collision-detection

7
推荐指数
1
解决办法
3879
查看次数

标签 统计

3d ×1

collision-detection ×1

math ×1

physics ×1

simulation ×1