我正在尝试编写一个函数,该函数采用两个重叠的矩形并返回一个矩形数组,这些矩形覆盖矩形 A 的区域,但不包括矩形 B 的区域。我很难弄清楚这个算法是什么样的可能的碰撞数量巨大且难以解释。
tl; dr 我正在尝试使用另一个矩形来裁剪一个矩形,从而生成一组覆盖剩余区域的矩形。
|-------------| |-------------|
|A | |R1 |
| |-------|----| |-----|-------|
| |B | | To |R2 |
| | | | ====> | |
| | | | | |
|-----|-------| | |-----|
| |
|------------|
POSSIBLE OVERLAP PATTERNS
|-----| |-----| |-----| |-----|
| |---|-| |-|---| | | |-| | | |-| |
|-|---| | | |---|-| |-|-|-| | |-| |
|-----| |-----| |-| |-----|
|-| |-----| |-----|
|-|-|-| | |---|-| |-|---| |
| |-| | | |---|-| |-|---| |
|-----| |-----| |-----|
请注意,可能的重叠模式是显示的两倍,因为矩形 A 和 B 可能是上述任何重叠模式中的以太矩形。