如何在javascript中生成圆周上的随机点
我试图写一个函数,它将随机返回给定圆周上的(x,y)坐标 如果我有一个点在(0,0)(是div的中心),我怎么能写一个函数,随机放置其他出现在圆外缘的实体如何在javascript中生成圆周上的随机点,javascript,math,trigonometry,Javascript,Math,Trigonometry,我试图写一个函数,它将随机返回给定圆周上的(x,y)坐标 如果我有一个点在(0,0)(是div的中心),我怎么能写一个函数,随机放置其他出现在圆外缘的实体 我所需要的是一个方程式,我知道它与获得从中心到圆周边缘的距离有关,只是不知道如何计算它并将其随机化,使其看起来很好。只需获得一个随机角度: var angle = Math.random()*Math.PI*2; 然后 完成。是的,这正是我想要的,甚至可以为我分解:Dvar angle=(Math.random()*(maxAngleDeg
我所需要的是一个方程式,我知道它与获得从中心到圆周边缘的距离有关,只是不知道如何计算它并将其随机化,使其看起来很好。只需获得一个随机角度:
var angle = Math.random()*Math.PI*2;
然后
完成。是的,这正是我想要的,甚至可以为我分解:D
var angle=(Math.random()*(maxAngleDegrees-minAngleDegrees)+minAngleDegrees)/180*Math.PI代码>-类似的东西。工作,但这是不正确的,因为点不是均匀分布的。正确的是r=Math.sqrt(Math.random());x=r*数学cos(角度)*半径;y=r*数学正弦(角度)*半径
@Srba我的代码在圆周上均匀分布点。您的点似乎分布在光盘区域。@VivekSubramanian您需要两个角度。基本上,点从(1,0,0)
开始,然后围绕Z轴旋转第一个角度(这就是这个答案的作用),然后围绕Y轴旋转(你需要更多的三角法)。这意味着我厌倦了谷歌搜索方程的一部分,不得不通过尝试和错误来解决它。
x = Math.cos(angle)*radius;
y = Math.sin(angle)*radius;