0

我正在尝试随机排列不同大小的单元格,然后计算不同单元格之间的重叠区域。因此,重叠可以是以下任何一种,也可能是其他一些。我正在不同单元格之间进行一对一的比较,以检查重叠并计算它。

在此处输入图像描述

所以我必须检测重叠并计算绿色区域。假设我将单元格命名为单元格 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 语句。计算面积的理想方法是什么?

4

0 回答 0