LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Это для двух прямоугольников, но одна к друго задаче вроде сводится:

  static boolean intersect(Rect a, Rect b) {
    final float bxMin = b.getXMin();
    final float bxMax = b.getXMax();
    final float axMin = a.getXMin();
    final float axMax = a.getXMax();
    
    final float ayMin = a.getYMin();
    final float ayMax = a.getYMax();
    final float byMin = b.getYMin();
    final float byMax = b.getYMax();
    
    return (
            bxMin >= axMin && bxMin <= axMax ||
            bxMax >= axMin && bxMax <= axMax ||
            bxMin <= axMin && bxMax >= axMax
           ) && (
            byMin >= ayMin && byMin <= ayMax ||
            byMax >= ayMin && byMax <= ayMax ||
            byMin <= ayMin && byMax >= ayMax
           );
  }

результат ковыряния R*-tree Split

Исходная версия Deleted, :

Это для двух прямоугольников, но одна к друго задаче вроде сводится:

  static boolean intersect(Rect a, Rect b) {
    final float bxMin = b.getXMin();
    final float bxMax = b.getXMax();
    final float axMin = a.getXMin();
    final float axMax = a.getXMax();
    
    final float ayMin = a.getYMin();
    final float ayMax = a.getYMax();
    final float byMin = b.getYMin();
    final float byMax = b.getYMax();
    
    return (
            bxMin >= axMin && bxMin <= axMax ||
            bxMax >= axMin && bxMax <= axMax ||
            bxMin <= axMin && bxMax >= axMax
           ) && (
            byMin >= ayMin && byMin <= ayMax ||
            byMax >= ayMin && byMax <= ayMax ||
            byMin <= ayMin && byMax >= ayMax
           );
  }