首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在实现扩展的多边形算法,我不知道如何从minkowski差分的一点推导出接触点

我正在实现扩展的多边形算法,我不知道如何从minkowski差分的一点推导出接触点
EN

Stack Overflow用户
提问于 2015-08-01 17:28:21
回答 1查看 1K关注 0票数 1

我从几个来源读到了环境保护局,但它们似乎都在minkowski距离源头最近的点上,突然停止使用。他们中的大多数都说了一些类似“利用这些信息,我们可以生成局部和全局的接触点和接触切线,”的话,但我不明白这是怎么可能的,更不用说如何去做了。我看不出一个人怎么能单独从一个差异中得到这个微小和间接的结果,当然也不可能在合理的时间内得到。这个问题的标准解决方案是什么?

如果这改变了答案,我希望在3D中实现这个算法。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-03 06:34:27

这里的博客文章的操作。

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

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

请允许我在这里重新表述一下。

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

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

代码语言:javascript
复制
x Ca + y Cb + z Cc = Cp

请注意,我们需要保持原来的支持函数的结果从两个对象(A & B)获得Ca、Cb和Cc的全局空间。设Aa、Ab和Ac表示对象A的原始支持函数结果。设Ba、Bb和Bc表示对象B的原始支持函数结果。

代码语言:javascript
复制
Ca = Aa + Ba
Cb = Ab + Bb
Cc = Ac + Bc

利用先前获得的重心坐标(x,y,z),线性地结合对象A& B的原始支持函数结果,可以计算出两个物体的接触点,分别表示Ap和Bp:

代码语言:javascript
复制
Ap = x Aa + y Ab + z Ac
Bp = x Ba + y Bb + z Bc

我希望这能为你澄清计算过程。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31764305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档