我正在尝试随机排列不同大小的细胞,然后计算不同细胞之间的重叠区域。因此,重叠可以是以下任何一种,也可能是其他一些。我正在对不同的单元格进行一对一的比较以检查重叠并计算它。
所以我必须检测重叠并以绿色计算面积。假设我将单元格命名为单元格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语句。什么是计算面积的理想方法?