屏幕坐标系获取两个矩形面积及重叠面积,重叠面积比率的java代码

来源:互联网 发布:tcss.ping.https.js 编辑:程序博客网 时间:2024/05/15 19:14
import java.math.*;/** x,y为矩形左上角坐标,width为宽,height为高**/public class MyRectangle{public int x;public int y;public int width;public int height;public MyRectangle(){}public MyRectangle(int x,int y,int width,int height){this.x = x;this.y = y;this.width = width;this.height = height;}public int getArea(){return this.height * this.width;}public static int getOverLappingArea(MyRectangle a,MyRectangle b){int overLappingArea = 0;int startX = Math.min(a.x,b.x);int endX = Math.max(a.x + a.width, b.x + b.width);int overLappingWidth = a.width + b.width - (endX - startX);int startY = Math.min(a.y, b.y);int endY = Math.max(a.y + a.height, b.y + b.height);int overLappingHeight = a.height + b.height - (endY - startY);if(overLappingWidth <= 0 || overLappingHeight <= 0){overLappingArea = 0;}else{overLappingArea = overLappingWidth * overLappingHeight;}return overLappingArea;}public static double getOverLappingRate(MyRectangle a,MyRectangle b){double overLappingRate = 0.0;int overLappingArea = getOverLappingArea(a,b);if(overLappingArea == 0){overLappingRate = 0.0;}else{int areaA = a.getArea();int areaB = b.getArea();overLappingRate = (double)overLappingArea / (double)(areaA + areaB - overLappingArea);}return overLappingRate;}}

0 0
原创粉丝点击