【发布时间】:2012-09-23 18:48:30
【问题描述】:
我刚刚使用 SAT 和this article 实现了碰撞检测作为我的实现的参考。检测按预期工作,但我需要知道两个矩形在哪里发生碰撞。
我需要找到交叉点的中心,即上图中的黑点(但我也没有交叉点区域)。我找到了一些关于此的文章,但它们都涉及避免重叠或某种速度,我不需要这个。
关于矩形的信息是代表它们的四个点,upper right、upper left、lower right 和 lower left 坐标。我正在尝试找到一种算法,可以为我提供这些点的交集。
我只需要在上面放一张图片。就像两辆车相撞一样,所以我将图像放在碰撞中心的顶部。有什么想法吗?
【问题讨论】:
-
获得交点中心的一种可能方法是构造 Minkowski 差并查看点 (0, 0)。这适用于任意多边形,但对于您的问题可能过于复杂。看看这个page + interactive example。 (具体关于 Minkowski 差异的部分。)抱歉,我无法提供具体帮助,我现在时间紧迫。
-
如果我理解正确的话。 Minkowski 差分(或 GJK 算法)会告诉我多边形是否正在碰撞。它在哪里告诉我碰撞点?