2016-09-19 9 views
0

私は1つのメイン(赤)矩形と、他のいくつかの矩形を持っています。CGRectの非交叉領域を複数の交点で得るにはどうすればいいですか?

メイン矩形(赤い領域)の非交差領域を取得するにはどうすればよいですか?

see preview

+0

各矩形の4つの頂点の座標がある場合、赤い矩形の合計面から赤い矩形内の各灰色の矩形の部分の表面を減算することができます。それは達成するのが難しいことではありません。 –

答えて

0

これは、あなたが「持っている」と「取得」によって何を意味するかに大きく依存します。入力形式と出力形式は何ですか?あなたはポイントのシーケンス、またはそのエリアだけを望んでいますか?これは一般的な解決策であるのでしょうか?

速い一般的な解決策として、私はBOOST polygon libraryを公開することを強くお勧めします(開示:私はBOOSTカンファレンスプレゼンテーションの査読者の一人でした)。これは、穴を含む任意のポリゴンを処理し、すべての基本的なポリゴン操作の素敵な仕事をします。

シンプルなポリゴンはポイントのシーケンスです。ポリゴンのセットを作ることができます。この場合、すべてのポリゴンを宣言します。赤い矩形を集合Aに、灰色の矩形を集合Bに入れます。次に、A-Bは、表示されたポリゴンを返します。

関連する問題