Java check if two rectangles overlap at any point

后端 未结 9 2272
醉梦人生
醉梦人生 2020-11-29 05:12

I have multiple rectangles and one special rectangle: the selection rect. I want to check for each rectangle if the rectangle contains at least one point which is inside the

9条回答
  •  醉酒成梦
    2020-11-29 06:12

    Background:

    A rectangle can be defined by just one of its diagonal.
    Let's say the first rectangle's diagonal is (x1, y1) to (x2, y2)
    And the other rectangle's diagonal is (x3, y3) to (x4, y4)

    Proceeding:

    Now, if any of these 4 conditions is true, we can conclude that the rectangles are not overlapping:

    1. x3 > x2 (OR)
    2. y3 > y2 (OR)
    3. x1 > x4 (OR)
    4. y1 > y4


    Otherwise, they overlap!

    Alternatively:

    The rectangles overlap if

    (x1 < x4) && (x3 < x2) && (y1 < y4) && (y3 < y2)
    



    Sample solution on Leetcode: https://leetcode.com/problems/rectangle-overlap/discuss/468548/Java-check-if-two-rectangles-overlap-at-any-point

提交回复
热议问题