重叠的情况比较多,这里用反向的排除法,画图更好理解:
用一个矩形的下边缘和另一个矩形的上边缘比较,下边缘比上边缘还高或重叠,则比无正相交。
同理,用一个矩形的右边缘和另一个矩形的左边缘比较,左边缘在右边缘的右边或重叠,则必无正相交部分。
其他情况就可能相交
#include<stdbool.h>
bool overlapRec(int* r1, int r1Len, int* r2, int r2Len ) {
   if(  r1[0] >= r2[2]  //第一个矩形在第二个矩形右边
     || r1[2] <= r2[0]  //第一个矩形在第二个矩形左边
     || r1[1] >= r2[3]  //第一个矩形在第二个矩形上边
     || r1[3] <= r2[1])  //第一个矩形在第二个矩形下边
       return false;
    else
        return true;
}