java - Perlin 噪声到百分比

标签 java perlin-noise normal-distribution

我正在编写一个基于 perlin 噪声的 map 生成器并遇到了一个问题:

假设我想要 30% 的水和 70% 的土砖。 使用普通的随机生成器没有问题:

tile = rnd.nextFloat() < 0.7f ? DIRT : WATER;

但是 perlin 噪声是正态分布的(范围从 -1 到 1,均值为 0)所以这并不容易。

有谁知道将正态分布转换为均匀分布的方法,或者我可以从噪声值中获取百分比的不同方法吗?

编辑: 70% 只是一个例子,我希望能够动态地使用任何值,最多只能有 0.1% 的精度。

编辑2: 我想将 perlin 噪声转换为均匀分布,不是为正态分布(它已经很相似)。

最佳答案

如果你想得到恰好 30% 的水(或其他一些指定值),你可以这样做。

  1. 生成高度图。
  2. 将所有高度值放入列表中。
  3. 对列表进行排序。
  4. 选择列表中出现 30% 的值作为您的水位。

关于java - Perlin 噪声到百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11487759/

相关文章:

java - 在 Java 中检索 HashMap 值

java - XmlBeans.Factory 解析方法的 ClassCastException 不一致

java - 使用比较器在 ArrayList 中搜索

java - 我怎样才能只显示最后一行?

ios - SKTileMap 从 GKNoiseMap 获取值

c - C 中 0 和 1 [0, 1) 之间的归一化随机数分布

python - 如何从 Python 中的双峰分布生成 n 个随机值?

perlin-noise - Perlin 噪声和 Simplex 噪声有什么区别?

machine-learning - 何时在机器学习中使用生成算法?