小编典典

从2个矩形中获取交点

algorithm

假设我们有两个矩形,分别定义为它们的左下角和右上角。例如: rect1(x1,y1)(x2,y2)
rect2(x3,y3)(x4,y4) 。我试图找到相交的矩形的坐标(左下和右上)。

任何想法,算法,伪代码将不胜感激。

ps我发现了类似的问题,但它们仅检查2个矩形是否相交。


阅读 333

收藏
2020-07-28

共1个答案

小编典典

如果输入矩形归一化,即你已经知道x1 < x2y1 < 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),您可以轻松地对其进行检查。

PS像往常一样,小的细节将取决于你是否有考虑 感人的 矩形作为相交。

2020-07-28