1 个不稳定版本

0.1.0 2020年9月30日

#5#poisson

MIT 许可证

32KB
792

poisson2d

Documentation Crates.io License: MIT Build Status

poisson2d 是 poisson 的分支,一个用于生成 N 维 Poisson disk采样 的库。它提供了一个与大多数计算机图形线性代数库兼容的 mint API,但只能生成 2D 采样。如果您对高维采样感兴趣,请参阅 poisson

具体来说,poisson2d 可以在 [0, 1)2 中生成采样点,其中

  • 采样点均匀地填充空间。
  • 采样点之间保持给定的最小距离。

这相当于以相等的半径填充单位正方形,其中半径是最小距离的一半,这些圆盘互不重叠

Example of a Poisson disk sampling represented as non-overlapping disks

由于它们的蓝色噪声特性,Poisson disk采样可用于程序纹理/世界生成中的对象放置,数字网点,渲染中的采样或(重新)网格化。

用法

与 mint 0.5 和 rand 0.7 兼容。

use poisson2d::{Builder, Type, algorithm};
use rand::FromEntropy;
use rand::rngs::SmallRng;

fn main() {
    let poisson =
        Builder::with_radius(0.1, Type::Normal)
            .build(SmallRng::from_entropy(), algorithm::Ebeida);
    println!("{:?}", poisson.generate());
}

依赖关系

~4MB
~108K SLoC