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;
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容