假设我们有两个矩形,分别定义为它们的左下角和右上角。例如: rect1(x1,y1)(x2,y2) 和 rect2(x3,y3)(x4,y4) 。我试图找到相交的矩形的坐标(左下和右上)。
任何想法,算法,伪代码将不胜感激。
ps我发现了类似的问题,但它们仅检查2个矩形是否相交。
如果输入矩形归一化,即你已经知道x1 < x2,y1 < y2(与同为第二个矩形),那么所有你需要做的就是计算
x1 < x2
y1 < y2
int x5 = max(x1, x3); int y5 = max(y1, y3); int x6 = min(x2, x4); int y6 = min(y2, y4);
它将使您的交点为矩形(x5, y5)-(x6, y6)。如果原始矩形不相交,则结果将是一个“退化的”矩形(带有x5 >= x6和/或y5 >= y6),您可以轻松地对其进行检查。
(x5, y5)-(x6, y6)
x5 >= x6
y5 >= y6
PS像往常一样,小的细节将取决于你是否有考虑 感人的 矩形作为相交。