我正在尝试随机排列不同大小的单元格,然后计算不同单元格之间的重叠区域。因此,重叠可以是以下任何一种,也可能是其他一些。我正在不同单元格之间进行一对一的比较,以检查重叠并计算它。
所以我必须检测重叠并计算绿色区域。假设我将单元格命名为单元格 1 和单元格 2,左侧的值为 x1,右侧的值为 x2。底部为 y1,顶部为 y2。所以这是我现在的代码,但似乎并没有涵盖它的所有部分。将黑色单元格视为 cell1,将红色单元格视为 cell2,
if (cell1.x2 > cell2.x1)
{
if(cell1.y2 >
if ((cell1.y2 > cell2.y1) && (cell2.y1 >= cell1.y1))
{
if(cell1.y2 > cell2.y2)
{
if (cell1.x2 > cell2.x2)
{
Area = cell2.h * cell2.w;
continue;
}
Area = cell2.h * cell2.x1 - cell1.x2);
continue;
}
Area = cell1.x2 - cell1.x1) * cell1.y2 - cell2.y1);
continue;
}
我想我缺少一些条件,但这看起来像很多 if 语句。计算面积的理想方法是什么?