No conozco ninguno, pero el problema no parece dificil. Ante todo, ¿qué quieres saber de la intersección? Supongamos que te interesa calcular el rectangulo interseccion. Vamos por pasos:
1) La interseccion de dos rectangulos es o bien vacia o bien un rectangulo (considerando segmentos y puntos como rectangulos). Por tanto, la interseccion de N rectangulos es o bien vacia o bien un rectangulo.
2) Para determinar un rectangulo basta dar dos puntos en el plano. Uno de ellos sera su vertice inferior izquierdo y el otro su vertice superior derecho. Denotemos un rectangulo como un par de puntos { X , Y }, donde el primer punto es el vertice inferior izquierdo y el segundo es el superior derecho. Si X = (x1,x2) e Y = (y1, y2), necesariamente tenemos las relaciones: x1 <= y1 y x2 <= y2, en otro caso el rectangulo se considerara vacio, por convenio.
3) Demos una relacion de orden total entre los puntos del plano: este orden se conoce como lexicografico. Un punto X = (x1,x2) se dice menor que otro punto Y = (y1,y2) si y solo si:
a) O bien x1 < y1
b) O bien x1 = y1 , x2 < y2.
Por ejemplo, un rectangulo esta definido por dos puntos, uno lexicograficamente menor o igual que el otro.
4) Si consideramos dos rectangulos, {X1, Y1} , {X2, Y2}, entonces su interseccion es: { max{X1,X2} , min{Y1,Y2} } , considerando los maximos y minimos tomados respecto al orden lexicografico. Bien, esto es una pequeña proposicion geometrica sencilla de probar. Observa que si max{X1,X2} es mayor que min{Y1,Y2}, entonces la interseccion sera vacia, por el convenio de 2)