如何使用Java找到两个可能的重叠矩形区域的总和?

时间:2015-10-11 09:28:24

标签: java

我需要使用Java找到两个可能重叠矩形的面积之和。

条件: 每个矩形由4个双打组成,如下所示:(x0,y0,x1,y1) 他们可能在边缘接触,重叠或没有任何接触

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

有很多情况需要注意,在我的下面的代码中,我只针对此图中的情况进行了展示:

enter image description here

所以这是这种情况的代码,你需要为其他情况编写代码:

public class Problem {

public static class Rectangle {

    double x0;
    double y0;
    double x1;
    double y1;

    Rectangle(double x0, double y0, double x1, double y1) {

        this.x0 = x0;
        this.y0 = y0;
        this.x1 = x1;
        this.y1 = y1;

    }

}

public static void main(String[] args) {

    Rectangle A = new Rectangle(2.0, 2.0, 10.0, 5.0);
    Rectangle B = new Rectangle(0.0, 0.0, 6.5, 3.5);
    double area = 0.0;


    if(A.x1 - B.x0 > 0 && A.y1 - B.y1 > 0) {

        System.out.println("they're overlaping");
        area = (A.x1 - B.x0) * (A.y1 - B.y1);
        System.out.println(area);

    } else if  (B.x1 - A.x0 > 0 && B.y1 - A.y1 > 0) {

        System.out.println("they're overlaping");
        area = (B.x1 - A.x0) * (B.y1 - A.y1);
        System.out.println(area);

    } else if (other conditions....) {

        // you're code here
    }


}

}

第一个if条件完全如上图所示,下一个条件是B和A切换位置时(B向左,A向右)。