intersection 方法

Rectangle<T>? intersection(
  1. Rectangle<T> other
)
继承

计算 thisother 的交集。

如果两个轴对齐矩形有交集,则该交集总是另一个轴对齐矩形。

返回 thisother 的交集,如果没有交集,则返回 null

实现

Rectangle<T>? intersection(Rectangle<T> other) {
  var x0 = max(left, other.left);
  var x1 = min(left + width, other.left + other.width);

  if (x0 <= x1) {
    var y0 = max(top, other.top);
    var y1 = min(top + height, other.top + other.height);

    if (y0 <= y1) {
      return Rectangle<T>(x0, y0, (x1 - x0) as T, (y1 - y0) as T);
    }
  }
  return null;
}