0

サイズの異なるセルをランダムに並べて、異なるセル間の重なり面積を計算しようとしています。したがって、オーバーラップは次のいずれかであり、おそらく他のものでもあります。重複を確認して計算するために、異なるセル間で1対1の比較を行っています。

ここに画像の説明を入力

そのため、オーバーラップを検出し、緑色の領域を計算する必要があります。セルにセル 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