我正在尝试检测矩形或圆是否包含点。这不是很难,但我想知道在目标c中是否存在任何内置方法?谢谢!
答案 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所指出的那样,创建一个完整路径对象可能并不总是最有效的方法 - 如果你已经有某种绘图的圆形路径或者某些东西那么是,但是有可能是其他更有效的方法。但是,使用路径是一种内置的方法。