【问题标题】:SVG Paths detect overlapping or enclosed shapesSVG 路径检测重叠或封闭的形状
【发布时间】:2013-08-07 07:25:00
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

  • 也许这个网站可以帮助你:KevLinDev 它有点过时了,但仍然是一个很好的关于 svg 交叉点的想法。

标签: svg


【解决方案1】:

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

棘手的步骤是第 1 步,可以使用像素绘画算法(我的偏好)进行近似计算。对于其他方法,您可以通过以下stackoverflow question关于重叠圆圈的面积

【讨论】:

  • 第一步你是怎么做的?
猜你喜欢
  • 2015-10-29
  • 2016-04-02
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 2021-09-08
相关资源
最近更新 更多