使用minkowski和进行碰撞预测

use*_*228 5 algorithm collision-detection convex-hull collision

我想使用minkowski和来预测两个凸形之间的确切碰撞点.根据我的理解,速度矢量与minkowski和相交的点是我必须沿着矢量移动我的物体的量,所以它们只是触摸(我已经知道它们会碰撞).这是我的意思的一个例子(为简单起见,我只使用了矩形):

在此输入图像描述

我的意思是我可以计算与凸包的每一条线的交点,并且只使用最接近的但是看起来非常低效.我的想法是计算最接近向量的单纯形,但我不知道如何做到最好.我发现了一种算法,它可以计算物体之间的最小距离,或者更精确地计算从minkowski总和到原点的最小距离(http://www.codezealot.org/archives/153).该算法的一部分试图找到最接近原点的单纯形,这是我想做的事情.我试图改变它以满足我的需求,但我没有成功.对我而言,听起来应该有一个非常简单的解决方案,但我对矢量数学并不是那么好.

我希望我的问题可以解决,因为我的英语不太好:D

小智 0

您可以将问题转化如下:

1)旋转平面,使速度矢量变为水平

2)考虑多边形轮廓彼此面对的部分(这是两条凸折线);现在你必须找到这两条折线之间的最短水平距离

3)穿过其中一条多段线的每个顶点,绘制一条水平线;这会将平面划分为一组水平切片

4) 使用剪切变换来变换每个切片,通过水平移动将定义它的两个顶点带到 Y 轴上;此变换保留水平距离

5) 当第一条折线变换为直线(Y轴)时,另一条折线变换为另一条折线;找到最接近 Y 轴的顶点。这给出了碰撞向量的长度。

作为副产品,步骤 2) 会告诉您多边形是否发生碰撞以及 Y 值的范围是否重叠。