8

我有棕色填充的 svg 路径,我想检测并提醒我的用户是否有任何形状在另一个形状的后面或上面。我知道如果它们在边缘相交会得到交集列表,但是如果我想检测一个位于另一个形状后面但在边缘不相交的形状会发生什么?

encoluseList 方法似乎处理的是边界框而不是这个。

有任何想法吗?

4

1 回答 1

4

检测路径/形状是否与另一个重叠
1. 计算最终形状覆盖的面积
2. 独立计算所有形状的面积总和(因为这是 SVG 并且每个路径元素的细节是已知的,这可以是完成)
3. 比较 2 个区域。如果 2 个区域相同,则没有重叠,否则至少有 2 个形状重叠。

棘手的步骤是步骤 1,可以使用像素绘画算法(我的偏好)近似计算。对于其他方法,您可以通过以下有关重叠圆圈区域的stackoverflow 问题

于 2013-08-06T23:25:00.757 回答