我需要一种可以提供Vector3位置和半径的方法,该方法将为我提供半径中的随机点,并且比半径的边缘向中心的机会更大。
我曾尝试寻找此问题的解决方案,但未能在搜索引擎中很好地描述该问题,从而无法得出满意的结果。
希望这里有人可以指出正确的方向。任何语言的代码示例都受到高度赞赏!
不确定这是否正是您想要的,但是它应该为您提供一些分布,在球体中心每体积的点数更多:
您可以使用这个简单的公式在球面上找到随机均匀分布的点:Generate a random sample of points distributed on the surface of a unit sphere
[当您抓住这一点并向内移动时,将其乘以随机值并除以r:
(x,y,z) *= randomValue
其中(x,y,z)是指向表面上随机点的向量,randomValue是0到1之间的某个随机值。
这相对于r给出了均匀的分布,但是由于曲面以较小的半径而变小,因此您的点将集中在中间。
如果要进一步调整分布,可以向randomValue添加一些功能:
(x,y,z) *= pow(randomValue, exponent)
指数越高,您将在球体中间得到的点越多。