如果我有二进制图像和不规则凸多边形,我怎么能计算它们是否相互交叉?多边形的坐标是根据图像描述的。
我对此有一些想法,来自碰撞检测或填充算法的观点,但我认为两者都不是最优的。我确信有一种经过验证的测试方法但却无法想到关键字。
这是我的意思的一个例子:
在这种情况下,它应该返回true。
答案 0 :(得分:2)
我会推荐以下算法:
使用Bresenham算法遍历每条线的多边形边界,并在每个像素处对栅格进行采样。如果它是您接受的颜色,例如非零alpha,则报告交叉点。
这样做的好处是只能处理多边形的边缘,因此您无需迭代多边形内的所有像素。