我有棕色填充的svg路径,我想检测并提醒我的用户,如果在另一个形状后面或上面有任何形状。我知道交叉点列表如果它们在边缘相交会得到但是如果我想检测另一个形状后面的形状但是在边缘处不相交会发生什么呢?
encoluseList方法似乎正在处理边界框,而不是这个。
有什么想法吗?
答案 0 :(得分:1)
检测路径/形状是否与另一个重叠
1.计算最终形状所覆盖的面积
2.独立计算所有形状的面积之和(因为这是SVG并且每个路径元素的细节都是已知的,这可以完成)
3.比较2个区域。如果2个区域相同,则没有重叠,否则至少2个形状重叠。
棘手的步骤是步骤1,可以使用像素绘制算法(我的偏好)近似计算。对于其他方法,您可以浏览以下stackoverflow question重叠圆圈区域