Полагаю, вы действительно хотите получить результат пересечения, а не только тест, если оба прямоугольника пересекаются.
Пересечение rect1 = (l1, t1, r1, b1) и rect2 = (l2, t2, r2, b2) снова является прямоугольником:
rectIntersection = ( max(l1, l2), max(t1, t2), min(r1, r2), min(b1, b2) )
rectIntersection, конечно, пусто, если left >= right || top >= bottom
при условии, что прямоугольник является лево / верхним включением и правым / нижним исключением.
Прямоугольники пересекаются, если
l1 < r2 && l2<r1 && t1<b2 && t2<t1