假设我想使用rand
生成一组坐标(x,y)。取生成的随机集中的任何一个点,距离 此点和这些点(最近/第一层)环绕它可以限制在一定范围内。概览效果看起来“这些随机点均匀分布。
答案 0 :(得分:1)
所有n个点必须在一个圆圈内。该圆的直径是任意两点之间的最大距离(d_max)。使用极坐标:r = (d_max / 2) * sqrt(rand(n, 1)); phi = 2 * pi * rand(n, 1);
需要平方根才能获得均匀的面密度。通过常规方式将极坐标转换为笛卡尔坐标:x = x0 + r .* cos(phi); y = y0 + r .* sin(phi);
其中(x0, y0)
给出圆的中心。
d_max = 10
的结果:
点之间距离的直方图:
答案 1 :(得分:1)
限制关于点(x,y)的随机坐标与距离' r'更像是在中心(x,y)和半径' r'中选择一个圆圈中的随机点。
下面应该有帮助
http://www.mathworks.com/matlabcentral/answers/294-generate-random-points-inside-a-circle
答案 2 :(得分:-1)