//C# Console Application Home assignment

我有8个这样的坐标:
(x1,y1)(x2,y2)……(x8,y8)
//前4个坐标用于第一个矩形
//第二个矩形的其余部分
我存储的值如下:
int[,] array2D = new int[8,2];
array2d[0,0] = x1;
array2d[0,1] = y1;
array2d[1,0] = x2;
array2d[1,1] = y2;
//...
array[7,0] = x8;
array[7,1] = y8;

我想计算这些坐标的相交面积。
我已经有了这个代码来检查矩形是否重叠(它可以工作):
if (!(array2D[2, 1] <= array2D[4, 1] && array2D[0, 1] >= array2D[6, 1]
                && array2D[2, 0] >= array2D[4, 0] && array2D[0, 0] <= array2D[6, 0]))
            {
//not overlapping
}
{
//overlapping
}

我需要算法帮助才能得到交叉口的面积。
注意:坐标可以是负值。

最佳答案

我会使用Rectangle.Intersect中的the System.Drawing method再发明轮子是没有意义的…;-)
返回表示交叉点的第三个矩形结构
其他两个矩形结构的。如果没有交叉点
返回空矩形。

关于c# - 计算两个矩形之间的相交面积,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21629912/

10-11 08:07