2013-04-08 66 views
7

我有棕色填充svg路径,我想检测并警告我的用户,如果有任何形状背后或上方另一个形状。我知道相交列表得到,如果他们相交的边缘,但如果我想检测一个形状落后于另一个形状但不相交在边缘会发生什么?SVG路径检测重叠或封闭的形状

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

任何想法?

+0

也许这个网站可以帮助你:[KevLinDev](http://www.kevlindev.com/geometry/2D/intersections/index.htm)这有点过时了,但仍然是围绕svg十字路口的想法的一个很好的选择。 – BausTheBig 2013-07-24 15:14:27

回答

1

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

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

+1

你如何做第1步? – CompanyDroneFromSector7G 2017-06-23 15:55:38