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

时间:2015-08-19 14:16:24

标签: objective-c swift center rectangles

如图所示,我想找到两个矩形之间的中点。如果矩形相交,则中点将简单地位于矩形的中心之间。但是如果矩形没有相交,那么中点将来自/在矩形的边缘之间。

我想在Obj-C或Swift中写这个。

THX

enter image description here

1 个答案:

答案 0 :(得分:0)

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

检查是否重叠了

CGRect RectA = CGRectMake(50,50,50,50);

CGRect RectB = CGRectMake(100,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");
}

找到OverLapped后,或者找不到两个矩形的中心并做任何你想做的事。

寻找中心。

CGPoint  centerB = CGPointMake((CGRectGetMinX(RectB) + CGRectGetMaxX(RectB))/2, (CGRectGetMinY(RectB) + CGRectGetMaxY(RectB))/2);

CGPoint centerA = CGPointMake((CGRectGetMinX(RectA)+ CGRectGetMaxX(RectA))/ 2,(CGRectGetMinY(RectA)+ CGRectGetMaxY(RectA))/ 2);