2017-02-20 78 views
2

我有一組元素(它們是具有絕對座標的DOM元素,但問題更多地是關於JavaScript的算法,一旦我用getBoundingClientRect獲取它們的座標()問題的其餘部分足夠通用,以至於適用於其他領域)。我需要確定這些矩形定義的區域是否爲矩形。下面是一些例子:確定由一組矩形元素定義的區域是否爲矩形

enter image description here

元素就不會重合,我試圖找出一個有效的算法,用於確定區域是否是矩形的,優選以線性時間。雖然如果它具有更高的時間複雜度,那麼它就不是世界的盡頭,只要它被認爲對於用戶來說是瞬間的即可。我的用例基本上是一個遊戲,如果選定的元素不對齊,將拒絕用戶的操作。

回答

3

既然你能保證沒有重疊,你可以:

  • 通過尋找最極端的左/右/上/下找到的最小邊界矩形
    • 座標
  • 發現邊界矩形區域
  • 找到矩形區域的總和。

如果邊界矩形具有與所有矩形區域的總和相同的面積,那麼這些矩形都將整齊地匹配在邊界矩形中。

+0

輝煌,謝謝! –

相關問題