在圆上对齐 n 圆圈>没有重叠
aligning n-circels on a circle > no overlapping
用于数据可视化,im在圆上对齐n圆圈。这很好用 - 但我不知道如何停止圆圈相互重叠。这里有人知道怎么做吗?
结果应像下面草图一样工作:
链接: http://www.xup.to/dl,79345003/sketch.jpg
所以我不知道如何计算第二个节点的角度- 基于半径,第一个节点的位置 - 和秒的半径...
JSFIDDLE 来说明我的意思:http://jsfiddle.net/0z9hyvxk/
var canvas = document.getElementById("canvas");
var stage = new createjs.Stage(canvas);
canvas.width = 500;
canvas.height = 500;
var midx = 250;
var midy = 250;
var radius = 200;
var angle = 0;
var count = 30;
var step = 2 * Math.PI / count;
var xpos;
var ypos;
var nodeSize;
var node = function(size){
var dot = new createjs.Shape();
dot.graphics.beginFill("#000").drawCircle(0, 0, size);
dot.x = dot.y = -5;
dot.alpha = .25;
return dot
};
for(var i = 0; i<count; i++)
{
xpos = radius * Math.cos(angle) + midx;
ypos = radius * Math.sin(angle) + midx;
nodeSize = i;
var n = new node(nodeSize);
n.x = xpos;
n.y = ypos;
stage.addChild(n)
angle += step;
}
stage.update();
提前致谢西蒙
程序不会根据圆的大小和角度进行校正。较小的圆圈彼此相距太远,较大的圆圈太近。
r1 = radius of the n-th small circle
r2 = radius of the (n+1)-th small circle.
r3 = radius of the (n+2)-th small circle
r1<r2<3
,所以 1 和 2 之间的角度小于 2 和 3 之间的角度。
尝试切向增加角度校正。我无法在工作中测试代码:(
相关文章:
- HighCharts长标题文本在某些元素上重叠
- 设置动画时,SVG/Raphael大圆圈会变形
- 如何检测重叠元素下的单击
- gmap3如何做到这一点-它显示圆圈的任何事件
- 停止较大单词的重叠
- 谷歌地图laravel上圆圈的错误位置
- FullCalendar:事件发生时阻止重叠.标题是一样的
- 在页脚处停止固定侧边栏-防止重叠
- JS图表和html表格重叠
- 拉斐尔用一个图像填满了这个圆圈
- 如何在d3.js中填充svg圆圈内的图像
- Cordova AngularJS Ionic标签的内容在第一次加载时重叠
- 圆圈菜单中的错误
- 在多行图表中,在每一行的末尾,我想要一个小圆圈和使用d3.js的端点值
- 传单圆圈绘制/编辑问题
- 重叠圆圈阻止鼠标悬停事件-谷歌地图v3
- 在圆上对齐 n 圆圈>没有重叠
- 如何在我的绘图图像上重叠一个画布圆圈,并设置cordinate和event
- 使用D3.pack转换后重叠的圆圈
- 随机算法&有效地放置100个圆圈,没有任何重叠