【python】判定矩形交集?
2019-07-24 本文已影响0人
阿牛02
题目:给定两个坐标轴对齐的矩形,判定它们是否相交;如果相交,给出它们相交所形成的矩形。
分析:在二维平面中,如果一个矩形,它的长与x坐标轴平行,高与y坐标轴平行,那么矩形就是坐标轴对齐的。这样的矩形在数据结构上,可以用它的左下角坐标(x,y)再加上宽w和高h来表示。
第一个矩形为(Sx,Sy),第二个矩形为(Rx, Ry),如果有交集则,Sx <= (Rx + Rw),Rx <= (Sx + Sw)
Sy <= (Ry + Rh),Ry <= (Sy + Sh)。左下角坐标为max(Sx, Rx),左下角坐标为max(Sy, Ry).
相交矩形的宽度满足:min(Sx + Sw, Rx + Rw) - max(Sx, Rx)
相交矩形的高度满足:min(Sy + Sh, Ry + Rh) - max(Sy, Ry)
code:省略。