我真的很困惑自己在这里......哪个实际上返回了两个矩形之间的交叉区域?请解释一下(数学让我感到沮丧)。任何帮助,将不胜感激。
方法一:
double newX = Math.max(this.x, rect2.x);
double newY = Math.max(this.y, rect2.y);
return new Rect(newX, newY, Math.min(this.x + this.width, rect2.x + rect2.width) - newX, Math.min(this.y
+ this.height, rect2.y + rect2.height)
- newY);
方法二:
double areaOfIntersection = Math.max(0, Math.max(rect1x2, rect2x2) - Math.min(rect1x1, rect2x1))
* Math.max(0, Math.max(rect1y2, rect2y2) - Math.min(rect1y1, rect2y1));