2017-02-20 4 views
2

私は要素のセットを持っています(絶対座標のDOM要素ですが、問題はJavaScriptよりもアルゴリズムに関するものです、getBoundingClientRect ()の問題の残りは他のドメインにも適用できるほど一般的です)。私はこれらの長方形によって定義された領域が長方形かどうかを判断する必要があります。 、長方形要素のグループによって定義された領域が長方形であるかどうかを確認する

enter image description here

要素が重なることはない私は、領域は、好ましくは、線形時間で、長方形であるかどうかを決定するための効率的なアルゴリズムを把握しようとしている:ここではいくつかの例があります。それは、タイル50タイルでユーザーに瞬時に知覚される限り、時間の複雑さが増している限り、世界の終わりではありませんが。私のユースケースは基本的に、選択された要素が整列していないとユーザーの操作を拒否するゲームです。

答えて

3

あなたは何の重複を保証することはできませんので、あなたは可能性:

  • 最も極端な左/右/上/下を見つけることによって、最小の境界長方形
    • を見つけることが
  • ことを見つけるの座標境界矩形の領域
  • 矩形の面積の合計を求めます。

境界矩形がすべての矩形領域の合計と同じ面積を持つ場合、矩形はすべて境界矩形にきれいに収まります。

+0

賢明、ありがとう! –

関連する問題