我有以下代码:
+(bool)Point:(CGPoint)point isInRectangle:(CGRect)rect
{
int rectx1 = rect.origin.x;
int recty1 = rect.origin.y;
int rectx2 = rect.origin.x + rect.size.width;
int recty2 = rect.origin.y + rect.size.width;
int pointx = point.x;
int pointy = point.y;
return (pointx >= rectx1 && pointx <= rectx2) && (pointy >= recty1 && pointy <= recty2);
}
它应该检测两个矩形之间的碰撞,但我没有得到正确的值。谁能帮助我?
答案 0 :(得分:3)
为什么不使用内置的几何函数?
CGRect CGRectContainsPoint(CGRect rect, CGPoint pt);
CGRect CGRectIntersectsRect(CGRect rect1, CGRect rect2);
这就是他们的目的。 :)这些以及许多其他有用功能的文档:http://developer.apple.com/library/ios/#DOCUMENTATION/GraphicsImaging/Reference/CGGeometry/Reference/reference.html
答案 1 :(得分:1)
其中一条线应该是高度而不是宽度。
int rectx2 = rect.origin.x + rect.size.width; int recty2 = rect.origin.y + rect.size.width;
答案 2 :(得分:1)
我想在这里:
int recty2 = rect.origin.y + rect.size.width;
你可能意味着:
int recty2 = rect.origin.y + rect.size.height;
但是,你应该知道已经有一个C函数CGRectContainsPoint(rect,point)可以做你想要的。所以除非你想要,否则你不必写一个。