2 つの重なり合う四角形を取り、四角形 A の領域をカバーするが、四角形 B の領域を除外する四角形の配列を返す関数を作成しようとしています。このアルゴリズムがどのように見えるかを理解するのに苦労しています。考えられる衝突の数は膨大であり、説明が困難です。
tl;dr別の長方形を使用して長方形をクリップしようとしていますが、残りの領域を覆う長方形のコレクションになります。
|-------------| |-------------|
|A | |R1 |
| |-------|----| |-----|-------|
| |B | | To |R2 |
| | | | ====> | |
| | | | | |
|-----|-------| | |-----|
| |
|------------|
POSSIBLE OVERLAP PATTERNS
|-----| |-----| |-----| |-----|
| |---|-| |-|---| | | |-| | | |-| |
|-|---| | | |---|-| |-|-|-| | |-| |
|-----| |-----| |-| |-----|
|-| |-----| |-----|
|-|-|-| | |---|-| |-|---| |
| |-| | | |---|-| |-|---| |
|-----| |-----| |-----|
上記のオーバーラップ パターンのいずれかで、長方形 A と B がエーテルの長方形になる可能性があるため、可能なオーバーラップ パターンは示されているものの 2 倍であることに注意してください。