C#中分形Perlin噪声函数的均匀分布

时间:2012-03-03 21:03:10

标签: c# random statistics probability perlin-noise

My Perlin噪声函数(以0.75持久性加上6个八度的3D单形)生成double s的2D数组。

这些数字各自归一化为[-1,1],均值为0.我钳制它们以避免异常,我认为这是由于浮点精度问题,但我相当确定我的缩放因子是足够好,可以在理想情况下将噪声输出限制在这个邻域。

无论如何,这都是细节。关键是,这是一个256乘256的噪音阵列:

enter image description here

正常拟合的直方图如下所示:

enter image description here

Matlab的lillietest是一个函数,它应用Lilliefors测试来确定一组数字是否来自正态分布。我的结果反复是1,这意味着这些数字不是正常分布的。

我想要一个函数f(x),这样当应用于我的噪声函数的值列表时,结果看起来是均匀分布的。

我希望这个函数可以在C#中实现,而不需要花费几分钟来运行。

再一次,数字的来源无关紧要(问题是关于将一​​个分布转换为另一个分布,特别是正常的分布到统一分布)。然而,我的噪声函数实现基于thisthis。您可以找到上面的值数组here

2 个答案:

答案 0 :(得分:5)

奇怪的是,我刚刚在你的问题上写了一篇文章:

http://ericlippert.com/2012/02/21/generating-random-non-uniform-data/

在那里,我将讨论如何将统一分布转换为其他分布,但当然您可以使用类似的技术来转换其他分布。

答案 1 :(得分:2)

您可能会对以下(相关)技术之一感兴趣: