たとえば、長方形の板からいくつかの長方形の穴を削り取りたいとします。例えば、
状況 1、穴が交差:
穴 0,1,2 を持つボード x、長方形 0 と 1 が交差します。
xxxxxxxxxxx
xxxxxx222xx
x000xx222xx
x00011222xx
x00011xxxxx
xxx111xxxxx
xxxxxxxxxxx
またはより単純な状況 2、穴が交差しない:
xxxxxxxxxxx
xxxxx2222xx
x00xx2222xx
x00xx2222xx
x00x111xxxx
xxxx111xxxx
xxxxxxxxxxx
後者は、「大きな長方形内の一連の長方形を反転する」に似ています。
私の質問は: ボード x を正確にカバーする一連のサブ長方形を計算する方法は?
Input: a larger rect, and a set of hole rects
Output: a set of sub rects cover exactly the larger rect with holes
rect 構造体は以下の CCRect が好きかもしれません。調整タイプは float です:
typedef struct {float x; float y;} CGPoint;
typedef struct {float width, float height} CGSize;
typedef struct {CGPoint origin; CGSize size;} CGRect;
素晴らしいアイデアはありますか?