Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中生成圆周上的随机点_Javascript_Math_Trigonometry - Fatal编程技术网

如何在javascript中生成圆周上的随机点

如何在javascript中生成圆周上的随机点,javascript,math,trigonometry,Javascript,Math,Trigonometry,我试图写一个函数,它将随机返回给定圆周上的(x,y)坐标 如果我有一个点在(0,0)(是div的中心),我怎么能写一个函数,随机放置其他出现在圆外缘的实体 我所需要的是一个方程式,我知道它与获得从中心到圆周边缘的距离有关,只是不知道如何计算它并将其随机化,使其看起来很好。只需获得一个随机角度: var angle = Math.random()*Math.PI*2; 然后 完成。是的,这正是我想要的,甚至可以为我分解:Dvar angle=(Math.random()*(maxAngleDeg

我试图写一个函数,它将随机返回给定圆周上的(x,y)坐标 如果我有一个点在(0,0)(是div的中心),我怎么能写一个函数,随机放置其他出现在圆外缘的实体


我所需要的是一个方程式,我知道它与获得从中心到圆周边缘的距离有关,只是不知道如何计算它并将其随机化,使其看起来很好。

只需获得一个随机角度:

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;