我需要使用Java找到两个可能重叠矩形的面积之和。
条件: 每个矩形由4个双打组成,如下所示:(x0,y0,x1,y1) 他们可能在边缘接触,重叠或没有任何接触
感谢任何帮助。
答案 0 :(得分:1)
有很多情况需要注意,在我的下面的代码中,我只针对此图中的情况进行了展示:
所以这是这种情况的代码,你需要为其他情况编写代码:
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向右)。