确定由一组矩形元素定义的区域是否为矩形

时间:2017-02-20 00:57:10

标签: javascript algorithm

我有一组元素(它们是带有绝对坐标的DOM元素,但问题更多的是关于算法而不是JavaScript,一旦我用getBoundingClientRect()得到它们的坐标,问题的其余部分就足够通用了它适用于其他领域)。我需要确定这些矩形定义的区域是否为矩形。以下是一些例子:

enter image description here

元素永远不会重叠,我试图找出一种有效的算法来确定该区域是否是矩形,最好是线性时间。虽然它的时间复杂度更高,但它并不是世界末日,只要它被认为对用户来说是瞬时的,例如...... 50块。我的用例基本上是一个拒绝用户操作的游戏,如果所选元素不对齐。

1 个答案:

答案 0 :(得分:3)

由于您可以保证不会重叠,您可以:

  • 找到最小边界矩形
    • 找到最极端的左/右/上/下坐标
  • 找到边界矩形的区域
  • 找到矩形区域的总和。

如果边界矩形与所有矩形区域的总和具有相同的面积,则矩形全部整齐地适合于边界矩形。