Objective C的形状和点

时间:2009-11-28 22:36:37

标签: objective-c

我正在尝试检测矩形或圆是否包含点。这不是很难,但我想知道在目标c中是否存在任何内置方法?谢谢!

1 个答案:

答案 0 :(得分:2)

对于矩形(如NSRect s),有基础函数NSPointInRect()

NSPoint somePoint = //The point you want to test for
NSRect someRect = //The rectangle you want to test in

BOOL rectContainsPoint = NSPointInRect(somePoint, someRect);

对于圈子,您可以使用NSBezierPath实例方法containsPoint:

NSBezierPath *circlePath = //Assume this is instantiated to a circle path
NSPoint somePoint = //The point you want to test for

BOOL circleContainsPoint = [circlePath containsPoint:somePoint];

同样,如果您有一个矩形路径,您可以使用containsPoint:来测试该点是否在该矩形中。

编辑正如NSResponder所指出的那样,创建一个完整路径对象可能并不总是最有效的方法 - 如果你已经有某种绘图的圆形路径或者某些东西那么是,但是有可能是其他更有效的方法。但是,使用路径是一种内置的方法。