Сперва введем обозначения для прямоугольников: A(x1(t),y1(t);x2(t),y2(t);x3(t),y3(t);x4(t),y4(t)) и B(xx1(t),yy1(t);xx2(t),yy2(t);xx3(t),yy3(t);xx4(t),yy4(t)).
Тут надо решить две задачи. Первая: найти время столкновения t0 (xi==xxj или yi==yyj ; 1<=i,j<=4) .
Вторая: из четырех точек(по две от A и B) с одинаковой X (или Y если yi==yyj), выбрать две точки (по одной от A и B), которые и будут координатами отрезка столкновения. Надо просто отбросить отбросить минимальное и максимальное число.
Пример.
A(5,1; 10,1; 5,3; 10,3) B(7,3; 10,3; 7,6; 10,6). Берем четыре точки 5,3; 10,3 ; 7,3; 10,3 . Из 5, 10, 7, 10 оставляем 7 и 10. Координаты отрезка столкновения: 7,3; 10,3.
P.S. Случай, вырождения отрезка в точку выявляется уже при решении первой задачи. То есть, вторую задачу при этом не применяют.