尝试在圆的边缘绘制坐标

19

我试图通过计算来绘制圆周上的坐标。这里是一个硬编码的示例:

http://jsfiddle.net/jE26S/1/

var iteration = 4;
var left = [94,200,104,-6];
var top = [-6,94,200,94];    

for(var i=0; i<iteration; i++){

    $("#center").append("<div class='point' style='left:"+left[i]+"px;top:"+top[i]+"px'></div>");    

}

数学绝对不是我的强项。

我需要将人们表示为围绕一个大圆站立的小圆圈。然而,人数将是随机的,它们都需要等距离分布。我不确定是否应该从一个中心点开始工作。


2
从一个中心点开始工作是个好主意。对于一个以(a,b)为圆心,半径为r的圆,圆边缘上的点的位置是(a+r*cos(angle), b+r*sin(angle))这里有一个与你的问题非常相似的SO问题。 - Kevin
1个回答

38

假设(x0, y0)是你的圆心,r是半径:

var items = 4;
for(var i = 0; i < items; i++) {

    var x = x0 + r * Math.cos(2 * Math.PI * i / items);
    var y = y0 + r * Math.sin(2 * Math.PI * i / items);   
    $("#center").append("<div class='point' style='left:"+ x +"px;top:"+ y +"px'></div>");    

}

1
是的,根据结果所在的象限,您可能需要减去点的宽度/高度。 - John Ledbetter
嗨John,你能告诉我如何调整上面的代码,使得所有小圆圈都紧贴在一起,即消除小圆圈之间的间隙吗?谢谢。 - user1503606
2
将它们的直径设置为大圆周长除以小圆数量的值。 - Lee Goddard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接