我需要一种方法,在这种方法中,我可以提供一个Vector2的位置和一个半径,这将给我一个随机的点在半径中,有更高的机会向中心比半径的边缘。
我曾试着搜索这个问题的解决方案,但一直无法在searchengines中很好地描述这个问题,无法得出一个好的结果。
希望这里有人能给我指出正确的方向。如果有任何语言的代码例子,我们将非常感激
不如这样吧。
不知道这是否正是你想要的,但它应该给你一些分布,球体中心的每一体积有更多的点。
你可以用这个简单的公式 在球体表面找到一个随机均匀分布的点。生成一个随机分布在单位球体表面的点的样本:
当你把这个点与一个随机值相乘并除以r后向内移动。
(x,y,z) *= randomValue
其中(x,y,z)是指向表面上随机点的向量 randomValue是0到1之间的随机值。
这给出了一个相对于r的均匀分布,但由于表面的半径越小,你的点会集中在中间。
如果你想进一步调整分布,你可以给randomValue添加一些幂。
(x,y,z) *= pow(randomValue, exponent)
其中指数越高,你将得到更多的点在球体的中间。