Geometry


HOME > TIPS > Cocoa Programming Tips 1001 > Foundation > Geometry

Geometry関数

Foundation - Geometry関数

NSRectのANDやORをとる

Keywords: NSIntersectionRect, NSUnionRect

ある2つのNSRectがあったとしよう。それらのANDやOR、つまり論理積や論理和ってものが定義できるはずだ。論理積の方はNSRectが重なり合っている領域、論理和の方は2つのNSRect両方を覆い尽くすNSRect、ということになる。図で示すと、こんな感じだ。

andOrRects.gif

Cocoaにはこれを取り出す関数が用意されている。NSIntersectionRect()とNSUnionRect()だ。

Foundation/NSGeometry.h

FOUNDATION_EXPORT NSRect NSIntersectionRect(
NSRect aRect, NSRect bRect);
FOUNDATION_EXPORT NSRect NSUnionRect(
NSRect aRect, NSRect bRect);

NSIntersectionRect()がANDを、NSUnionRect()がORを適用したNSRectを返してくれるんだ。