【python程序员面试宝典|程序员算法宝典】

【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:省略。

上一篇下一篇

猜你喜欢

热点阅读