2013-04-08 65 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