Two Rectangles intersection

algorithm, math, pseudocode, shapes

Solution

if (X1+W1<X2 or X2+W2<X1 or Y1+H1<Y2 or Y2+H2<Y1):
    Intersection = Empty
else:
    Intersection = Not Empty

If you have four coordinates – `((X,Y),(A,B))` and `((X1,Y1),(A1,B1))` – rather than two plus width and height, it would look like this:

if (A<X1 or A1<X or B<Y1 or B1<Y):
    Intersection = Empty
else:
    Intersection = Not Empty

Problem

I have two rectangles characterized by 4 values each : Left position `X`, top position `Y`, width `W` and height `H`: ``` X1, Y1, H1, W1 X2, Y2, H2, W2 ``` Rectangles are not rotated, like so: ``` +--------------------> X axis | | (X,Y) (X+W, Y) | +--------------+ | | | | | | | | | | +--------------+ v (X, Y+H) (X+W,Y+H) Y axis ``` What is the best solution to determine whether the intersection of the two rectangles is empty or not?

Original source

Related problems