这个方法可以用来支持圆形菜单布局等类似需求:
/** * 计算N个点均匀排列成圆的各个点坐标 * @param nodeSize 参与排列成圆的元素个数 * @param center 圆的中心点坐标 {x:, y:} * @param radius 圆的半径 * @return 各个元素的坐标:[{x:, y:}, {x:, y:}, ...] */ function calcCircularLayout(nodeSize, center, radius) { var i, _i, _layouts = []; for(i = _i = 0; _i < nodeSize; i = ++_i) { var x = center.x + radius * Math.sin(2 * Math.PI * i / nodeSize), y = center.y + radius * Math.cos(2 * Math.PI * i / nodeSize); _layouts.push({‘x‘: x, ‘y‘: y}); } return _layouts; }
时间: 2024-10-12 23:46:43