计算2个矩形所占的面积

简介: 这是在leetcode上看到的题目。 2个矩形由各自的左下角和右上角来定义。坐标定义为(A,B)(C,D);(E,F)(G,H)。 顶点坐标全部为int整数。 两个矩形分布可以分为三种情况。

这是在leetcode上看到的题目。

2个矩形由各自的左下角和右上角来定义。坐标定义为(A,B)(C,D);(E,F)(G,H)。

顶点坐标全部为int整数。

两个矩形分布可以分为三种情况。分离,包含与相交。


代码如下:

public class ReArea {
	public static int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
		int result = 0;
		int area1,area2;
		if(A >= G || B >= H || E >= C || F >= D){
			area1 = calArea(A,B,C,D);
			area2 = calArea(E,F,G,H);
			result = area1 + area2;
		}
		else if((A <= E)&&(C >= G)&&(B <= F)&&(D >= H)){
			area1 = calArea(A,B,C,D);
			result = area1;
		}
		else if((A >= E)&&(C <= G)&&(B >= F)&&(D <= H)){
			area2 = calArea(E,F,G,H);
			result = area2;
		}
		else{
			int[] xLen = {A,C,E,G}; 
			int[] yLen = {B,D,F,H};
			sort(xLen);
			sort(yLen);
			area1 = calArea(A,B,C,D);
			area2 = calArea(E,F,G,H);
			
			result = area1 + area2 - ((xLen[1] - xLen[2]) * (yLen[1] - yLen[2]));
		}
		
		return result;
	}
	public static void sort(int[] dot){
		for (int i = 0; i < dot.length; i++)
		{
			for (int j = i; j < dot.length; j++)
			{
				if (dot[i] < dot[j])
				{
					int temp = dot[i];
					dot[i] = dot[j];
					dot[j] = temp;
				}
			}
		}
	}
	
	public static int calArea(int x1,int y1,int x2,int y2){
		int r1,r2;
		if (x1 >= x2){
			r1 = x1 - x2;
		}else{
			r1 = x2 - x1;
		}
		if (y1 >= y2){
			r2 = y1 - y2;
		}else{
			r2 = y2 - y1;
		}
		return r1 * r2;
	}
	public static void main(String args[]){

		System.out.print(computeArea(0,0,4,4,0,2,3,3));//output:16
	}
}



目录
相关文章
|
4月前
|
算法
矩形总面积计算器:计算两个矩形的总面积,包括重叠区域
矩形总面积计算器:计算两个矩形的总面积,包括重叠区域
34 1
|
4月前
leetcode-363:矩形区域不超过 K 的最大数值和
leetcode-363:矩形区域不超过 K 的最大数值和
24 0
|
9月前
wustojc2009计算图形面积
wustojc2009计算图形面积
37 0
|
11月前
|
算法 Python
计算圆的面积
计算圆的面积
53 0
|
11月前
|
算法 Python
计算三角形的面积
计算三角形的面积
62 0
|
11月前
|
算法
计算三角形的周长和面积
计算三角形的周长和面积
48 0
|
12月前
|
存储 数据可视化
基于 ggridges 绘制剩余使用寿命密度图
基于 ggridges 绘制剩余使用寿命密度图
82 0
|
12月前
给定圆的半径r,求圆的面积。
给定圆的半径r,求圆的面积。
09:与圆相关的计算
09:与圆相关的计算
76 0
计算不规则多边形的面积、中心、重心
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/82222037 计算不规则多边形的...
9143 0

热门文章

最新文章