2011-01-25 3 views
2

私はCGRectUnion()を使ってrect1とrect2を結合し、rect3 fineの組み合わせを得ることができます。CGRectUnion()の逆はどうなりますか?

rect3(rect1を含む)からrect1を減算し、rectの残りの部分を得ることはできますか?

+3

'CGRectUnion()'は実際には真の矩形の結合をしません。両方のソース矩形を完全に含む最小の矩形を返します。どのような種類の結果を期待していますか?私は、減算がほとんどの場合矩形を提供するとは思わない。 –

+0

密接に関連している:[CGRectからCGRectを引く - 他のものを含んでいない最大のもの](http://stackoverflow.com/q/4811623)。そこの図に基づいて、選択された定義は、結果が第2のものと交差しない第1のものの部分矩形であるということである。もちろん、これは正確には減算ではありませんが、役に立つかもしれません。 –

答えて

3

ブラッド・ラーソンが言ったようにCGRect機能がrectsとその構成部品(ポイント、サイズ、および単一の数字)が、何も動作するので、あなたは、クォーツでこれを行うことはできません。

Macをプログラミングしている場合は、HIShapeという別のAPIを使用することをおすすめします。クイックドローリージョンの現代の後継機種であり、長方形以外の形状も可能です。残念ながら、HIShapeは64ビットMac OS Xでもまだ利用可能ですが、iOSでは利用できません。

このようなものが本当に必要な場合は、あなた自身のHIShapeのような長方形ではない形状のクラスを含めて、自分で書く必要があります。

1

あなたを正しく理解できたら、CGRectIntersectionを試してみてください。

+0

'CGRectIntersection'は2つの矩形の交点を返します。彼が求めたのは、あるrectを別のrectから引く方法があるかどうかです。 'originalRect - CGRectIntersection(originalRect、otherRect)' – Andy

0

だけでなく、それは私が意味する ... rect3はRECT1が含まれているどのように...依存し、RECT1は、すべて内部で残りをrect3場合は、結果の領域は矩形...例えば が、それ以上であることを起こらないことareaはrectではないので、CGRectオブジェクトを使用することはできません。 rect3とrect1が完全に1つの面を共有していて、すべての部分を共有している場合にのみ、rectを得ることができます。だから私は、その減算によって得たいobjetの種類を知る必要があります... 2つの異なる領域が色分けされた新しい画像かもしれませんか?より多くのCGrect(上のrect、left、bitton、right ...)でresuting areaをスリットします 結果として得られる "object"で何をするつもりですか?

ルカ

関連する問題