固定平面内にランダムなサイズと位置の、重なり合う可能性のある長方形がいくつかあります。これらの長方形はランダムであるため、一部は重ならない場合があります。
| ----- | | | ---- | | ---- | | | | ---- |
一部は1つのコーナーだけで重なる場合があります。
| ----- | | |-|-| |-|-| | | ----- |
一部は別の長方形の中に含まれている可能性があります。
| ---------------- | | | | | ----- | | | | | | | | ----- | | | ---------------- |
一部は別の長方形を通過する可能性があります。
| ---------------- | | | |-| ------------------- | | | | | |-| ------------------- | | ---------------- |
等
入力セットと同じ領域を表すが、重複しない長方形のセットを提供するアルゴリズムを見つけようとしています。明らかな場合もあります。大きな長方形に含まれる長方形は破棄でき、角で重なる長方形は、別の長方形を通過する長方形と同様に3つの長方形に分割できます。私が探しているのは、これらすべてのケースを処理する一般的なアルゴリズムです。それが見事に効率的でなくても、私はあまり気にしません-入力セットはかなり小さいです(最大25個の長方形)
重なっている長方形を見つけるのは簡単ですが、特に1つの長方形が他の複数の長方形と重なっている可能性があることを考えると、そこからすぐに難しくなります。
これは私の頭を使っています。何か提案はありますか?
アップデート:
もう1つ気づきました。
このアルゴリズムは、設定した長方形が1つずつ追加されるとき、またはすべての長方形が追加された後に実行できます。考慮すべき長方形が1つしかないため、長方形が追加されるときにそれを行う方が簡単な場合がありますが、1つの長方形が他の複数の長方形と重なる状況を考慮する必要があります。