Trouver la zone de chevauchement de deux rectangles (en C #)

Edit:

Simple code que j'ai utilisé pour résoudre le problème au cas où quelqu'un est intéressé (grâce à Fredrik):

    int windowOverlap(Rectangle rect1, Rectangle rect2)
    {
        if (rect1.IntersectsWith(rect2))
        {
            Rectangle overlap = Rectangle.Intersect(rect1, rect2);
            if (overlap.IsEmpty)
                return overlap.Width * overlap.Height;
        }

        return 0;
    }

Question D'Origine:

Je voudrais savoir d'une façon rapide et sale de vérifier si deux rectangles se chevauchent et s'ils le font de calculer la surface du chevauchement. Pour les curiosités de cause, je suis intéressé dans le cas où 1) toutes les lignes dans les deux rectangles sont soit à la verticale ou à l'horizontale ou 2) le cas général pour toutes les deux rectangles, mais la seule réponse que j'ai vraiment besoin, c'est le cas 1.

Je suis en train de penser le long des lignes de:

double areaOfOverlap( Rect A, Rect B)
{
    if ( A.Intersects(B) )
    {
        //calculate area
        //return area
    }

    return 0;
}

Pour A. Intersects() je pensais de l'aide à la séparation de test de l'axe, mais si les rectangles ont seulement les lignes horizontales et verticales est-il un moyen encore plus simple (plus rapide) de manière à vérifier?

Et pour le calcul de la zone où ils se croisent est-il un moyen rapide de le faire si les rectangles seulement les lignes horizontales et verticales?

Enfin, ceci est sans rapport avec la question, mais je te remercie de tous les conseils de quelqu'un peut avoir sur un bon livre ou une page web où je pourrais revoir les mathématiques pour l'informatique graphique. J'ai été sorti de l'université pendant un certain temps et se sentir comme je suis de tout oublier :)! Quelqu'un d'autre a ce problème?

( NOTE: j'ai trouvé cette question est-elle différente de cette qui semble plus compliqué et n'a pas directement répondu à la question. )

source d'informationauteur Evan