T223、矩形面积

在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。
每个矩形由其左下顶点和右上顶点坐标表示,如图所示。


image.png

示例:
输入: -3, 0, 3, 4, 0, -1, 9, 2
输出: 45
说明: 假设矩形面积不会超出 int 的范围。

总体思路为用2个矩形面积减去重叠部分的面积,所以第一步需要判断是否有重叠面积,如果有需要计算重叠部分面积。只需用注意定点间的对应关系即可完成。

public static int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        int temp = 0;
        if(E>=C||G<=A||D>=F||H<=B)
            temp = 0;
        else {
            int x1 = Math.max(A, E);
            int x2 = Math.min(C,G);
            
            int y1 = Math.max(B, F);
            int y2 = Math.min(D, H);
            temp = Math.abs((x1-x2)*(y1-y2));
 
        }
        return Math.abs((A-C)*(B-D)) + Math.abs((E-G)*(F-H)) - temp;
    }

你可能感兴趣的:(T223、矩形面积)