已知条件:
宽度已知且有限,高度无限的区域内,有n个方格,已知这些方格的x ,y 坐标以及宽度w和高度h,方格不重叠
需求:
在空间内找个一个位置,可以放的下一个固定宽高(如4 x 4)的方格,原则:离原点最近且Y轴最上
关键点:
- 位置信息转化为二维数组
- 目标点:每个已知方格的左下角点 A,右下角点 B,和右上角点 C
- 目标点位置调整:A点依照高度向左平移,B C点按照宽度向上平移
- 补充点:原点检测
位置信息转化为二维数组 => 目标点获取 => 目标点位置调整 => 空间检测 => 最优点获取,原则:原点最近 && Y轴最上
代码实现:
/**
* spotGenerator
* 将该文件中的 spotGenerator 方法暴露出去以供调用
*
* 1. 实现思想:位置信息转化为二维数组 => 目标点获取 => 目标点位置调整 => 空间检测 => 最优点获取,原则:原点最近 && Y轴最上
* 2. 使用:调用spotGenerator(data, column, initialWidth, initialHeight) 方法
* 参数:
* 1. data : 类型 Array, 现有gird的位置信息,示例[{ x: 9, y: 9, w: 6, h: 7 }]
* 2. column: 类型 Number,分割的列数,例如 24
* 3. initialWidth: 类型 Number,新添加grid的默认宽度,如 4
* 4. initialHeight: 类型 Number,新添加grid时默认高度,如 4
* 返回值:
* 最优点的位置坐标,类型:Object 示例 { x:1 , y:1 }
*/
//获取数组的深度
function getDepth(data) {
var depths = [];
for (var i = 0; i < data.length; i++) {
depths.push(data[i].y + data[i].h)
}
return