【问题标题】:How to find if two rectangles intersect with the top left and bottom right points?如何查找两个矩形是否与左上角和右下角相交?
【发布时间】:2021-10-11 20:57:59
【问题描述】:

如果两个矩形重叠,则它们相交。边和角算作交叉点。如果只给出两个矩形左上角和右下角的点。如何判断它们是否相交。

【问题讨论】:

  • 这甚至不是一个编程问题,而是一个测试你是否了解笛卡尔坐标和算术的问题。拿一张纸和一支铅笔。画两个矩形。用坐标标记每个的左上角和右下角。你注意到一个矩形的下界与另一个矩形的上界之间有什么关系吗?现在右边界与左边界呢?反比关系呢?绘制以各种方式重叠的不同矩形对,以及更多以不同方式完全不重叠的矩形对。在放弃之前三思而后行。

标签: java math


【解决方案1】:

这是一个 Python 解决方案,但它很简单。 令 (ax1,ay1), (bx1,by1) 和 (ax2,ay2),(bx2,by2) 分别为第一个和第二个矩形的左上角和右下角。要检查它们是否相交,您可以简单地分别比较左右和上下的 x 和 y 坐标。例如,如果 ax1>=bx2 表示第一个矩形在第二个矩形的左侧,以此类推。

def rec_intersect(self, ax1: int, ay1: int, ax2: int, ay2: int, bx1: int, by1: int, bx2: int, by2: int) -> int:
        
        if ax1 >= bx2 or bx1 >= ax2 or ay1 >= by2 or by1 >= ay2:
            return True

        return False

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 2013-12-22
    • 1970-01-01
    • 2011-10-30
    相关资源
    最近更新 更多