Rectangle Area

MediumMathGeometry

Solution

export function computeArea(
  ax1: number,
  ay1: number,
  ax2: number,
  ay2: number,
  bx1: number,
  by1: number,
  bx2: number,
  by2: number,
): number {
  const areaOfA = (ay2 - ay1) * (ax2 - ax1);
  const areaOfB = (by2 - by1) * (bx2 - bx1);
 
  const xOverlap = Math.min(ax2, bx2) - Math.max(ax1, bx1);
  const yOverlap = Math.min(ay2, by2) - Math.max(ay1, by1);
 
  if (0 < xOverlap && 0 < xOverlap) {
    return areaOfA + areaOfB - xOverlap * yOverlap;
  }
  return areaOfA + areaOfB;
}