Objective c 找到两个矩形之间的中点,交点+边感知

Objective c 找到两个矩形之间的中点,交点+边感知,objective-c,swift,center,rectangles,Objective C,Swift,Center,Rectangles,如图所示,我想找到两个矩形之间的中点。如果矩形相交,则中点将位于矩形中心之间。但如果矩形不相交,则中点将位于矩形边缘之间 我想用Obj-C或Swift写这封信 thx 在这种情况下,您应该首先检查矩形是否重叠 检查是否重叠 CGRect RectA=CGRectMake50,50,50 if (CGRectGetMinX(RectA) < CGRectGetMaxX(RectB) && CGRectGetMaxX(RectA) > CGRectGetMinX(Re

如图所示,我想找到两个矩形之间的中点。如果矩形相交,则中点将位于矩形中心之间。但如果矩形不相交,则中点将位于矩形边缘之间

我想用Obj-C或Swift写这封信

thx


在这种情况下,您应该首先检查矩形是否重叠

检查是否重叠

CGRect RectA=CGRectMake50,50,50

if (CGRectGetMinX(RectA) < CGRectGetMaxX(RectB)  &&  CGRectGetMaxX(RectA) > CGRectGetMinX(RectB)  &&
    CGRectGetMinY(RectA) < CGRectGetMaxY(RectB)  &&  CGRectGetMaxY(RectA) > CGRectGetMinY(RectB) )
{
    NSLog(@"overlapped");

}
else
{
    NSLog(@"Not overlapped");
}
CGRect RectB=CGRectMake100,100,50,50

if (CGRectGetMinX(RectA) < CGRectGetMaxX(RectB)  &&  CGRectGetMaxX(RectA) > CGRectGetMinX(RectB)  &&
    CGRectGetMinY(RectA) < CGRectGetMaxY(RectB)  &&  CGRectGetMaxY(RectA) > CGRectGetMinY(RectB) )
{
    NSLog(@"overlapped");

}
else
{
    NSLog(@"Not overlapped");
}

CGPoint centerA=CGPointMakeCGRectGetMinXRectA+CGRectGetMaxXRectA/2,CGRectGetMinYRectA+CGRectGetMaxYRectA/2

编写ObjC/Swift代码可能是最简单的问题,一旦你算出了数学题:你应该问这个问题。此外,在发布问题之前,你至少应该尝试解决它,不费吹灰之力就要求答案是不礼貌的。你还遗漏了另一种情况:如果两个矩形重叠,但中心位于两个矩形之外怎么办?我可以使用CGRectIntersectsRect而不是长if语句,但是代码没有考虑矩形的边缘。中点应位于边缘之间,而不是中心之间。