这个方法可以用来支持圆形菜单布局等类似需求:
/**
* 计算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;
}