Algorithm I';我正在执行扩展多面体算法,我不确定如何从minkowski差分上的一点推导出接触点

Algorithm I';我正在执行扩展多面体算法,我不确定如何从minkowski差分上的一点推导出接触点,algorithm,collision-detection,Algorithm,Collision Detection,我已经从几个来源读到了关于EPA的信息,但是在minkowski差异上与原点最近的点被找到之后,它们似乎都突然停止了作用。他们中的大多数人都说了一些类似的话,但我不明白这怎么可能,更不用说怎么做了。我看不出有人怎么能仅仅从一个差异中得出分钟数和微秒数,当然也不能在合理的时间内得出。这个问题的标准解决方案是什么 我希望在3D中实现这个算法,如果这改变了答案的话。谢谢这里的博客帖子 这篇文章实际上讲了如何在EPA算法的第8步中计算接触点: 将原点投影到最近的三角形上。这是我们最接近的 指向CSO边界

我已经从几个来源读到了关于EPA的信息,但是在minkowski差异上与原点最近的点被找到之后,它们似乎都突然停止了作用。他们中的大多数人都说了一些类似的话,但我不明白这怎么可能,更不用说怎么做了。我看不出有人怎么能仅仅从一个差异中得出分钟数和微秒数,当然也不能在合理的时间内得出。这个问题的标准解决方案是什么


我希望在3D中实现这个算法,如果这改变了答案的话。谢谢这里的博客帖子

这篇文章实际上讲了如何在EPA算法的第8步中计算接触点:

将原点投影到最近的三角形上。这是我们最接近的 指向CSO边界上的原点。计算重心 此最近点相对于从 最近的三角形。重心坐标是的系数 最近三角形顶点的线性组合。线性 组合各个支撑点(原始结果来自 单个碰撞器)与最近的顶点相对应 三角形,具有与系数相同的重心坐标,给出 在两台对撞机各自的模型空间中的美国接触点。我们可以 然后将这些接触点转换为世界空间

请允许我在这里重新措辞

设Ca、Cb和Cc表示CSO三角形的三个顶点,其中包含CSO边界上与原点最近的点(表示为Cp)

计算Cp三角形的重心坐标(x,y,z)

x Ca + y Cb + z Cc = Cp
请注意,我们需要在全局空间中保留用于获取Ca、Cb和Cc的两个对象(A和B)的原始支持函数结果。设Aa、Ab和Ac表示对象A的原始支持函数结果。设Ba、Bb和Bc表示对象B的原始支持函数结果

Ca = Aa + Ba
Cb = Ab + Bb
Cc = Ac + Bc
使用之前获得的重心坐标(x,y,z)线性组合对象A和B的原始支持函数结果,我们可以计算两个对象上的接触点,表示为Ap和Bp:

Ap = x Aa + y Ab + z Ac
Bp = x Ba + y Bb + z Bc
我希望这能为您澄清计算过程。

很抱歉耽搁了这么长时间,我已经有一段时间没有检查我的帐户了,但谢谢您的回复!这是非常有用的,很抱歉暗示你的博客没有帮助,事实上这是我能找到的最有用的来源。我想我不太明白这个过程,但你已经澄清了。