// 矩形相交的面积
const str = `1 6 4 4
3 5 3 4
0 3 7 3`;
const arr = str.split(/\n/).map((e) => e.split(" ").map(Number));
console.log(getSize(arr));
function getSize(arr) {
let len = arr.length;
let [x, y, l, h] = arr[0];
let [a, b, c, d] = [y, x + l, y - h, x];
for (let i = 1; i < len; i++) {
[x, y, l, h] = arr[i];
[a, b, c, d] = [
Math.min(a, y), // 上边界为三个坐标Y轴坐标的最小值
Math.min(b, x + l), //右边界为三个坐标(X轴坐标+宽度)的最小值
Math.max(c, y - h), //下边界为三个坐标(Y轴坐标-高度)的最大值
Math.max(d, x), //左边界为三个坐标X轴坐标的最大值
];
}
if (a > c && b > d) {
return (a - c) * (b - d); //高为(上边界-下边界)*宽为(右边界-左边界)
}
return 0;
}
矩形相交的面积
最新推荐文章于 2024-01-19 11:16:48 发布