SVG路径检测重叠或包含的形状

8

我有一些填充了棕色的svg路径,并且我想检测并警告用户是否有形状在另一形状的后面或上面。我知道交集列表会获得它们是否在边缘相交,但如果我想检测一个形状在另一个形状的后面而不在边缘相交会发生什么呢?

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

有什么建议吗?


也许这个网站可以帮到你:KevLinDev。虽然有点过时,但仍是一个关于SVG交叉点的创意宝库。 - roundrobin
1个回答

4
为了检测路径/形状是否重叠,需要进行以下步骤:
1. 计算最终形状覆盖的区域
2. 独立计算所有形状的面积总和(由于这是SVG且每个路径元素的详细信息已知,因此可以完成此步骤)
3. 比较这两个区域。如果两个区域相同,则没有重叠;否则至少有两个形状重叠。
其中棘手的步骤是步骤1,可以使用像素绘制算法进行近似计算(我比较偏好)。对于其他方法,您可以参考以下关于重叠圆的面积的stackoverflow问题

2
你如何完成第一步? - CompanyDroneFromSector7G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接