我有不规则的多边形A和B。它们相交,我想将多边形A从多边形B中移开以摆脱相交。我有MTV。 MTV是一个大小(多边形投影的最小重叠)+包含此最小重叠的轴。我需要知道MTV沿轴的方向才能正确移动A。我在以下链接中找到了问题的解决方案:link 1和link 2
链接1中的解决方案:
解决方案是,如果位移矢量指向需要推离对象的形状,则只需扭转它(乘以-1)即可。若要确定位移矢量是否指向形状,首先必须通过将对象a的中心彼此相减来获得对象a到对象b的大致方向。之后,检查位移向量与刚创建的direction(a,b)向量之间的点积。如果它大于0,则位移向量和方向(a,b)指向相同的方向,因此您需要翻转位移向量。
据我了解,链接2的解决方案与链接1相同,但换句话说。
但是我对链接1的解决方案有疑问-如何计算不规则凸多边形的中心?我认为您可以在一种情况下做到:将多边形表示为AABB。我想知道链接1和链接2的解决方案是否100%正确,这些解决方案的数学原理在哪里?