1 个不稳定版本
0.1.0 | 2020年9月30日 |
---|
#5 在 #poisson 中
32KB
792 行
poisson2d
poisson2d 是 poisson 的分支,一个用于生成 N 维 Poisson disk采样 的库。它提供了一个与大多数计算机图形线性代数库兼容的 mint
API,但只能生成 2D 采样。如果您对高维采样感兴趣,请参阅 poisson。
具体来说,poisson2d 可以在 [0, 1)2 中生成采样点,其中
- 采样点均匀地填充空间。
- 采样点之间保持给定的最小距离。
这相当于以相等的半径填充单位正方形,其中半径是最小距离的一半,这些圆盘互不重叠
由于它们的蓝色噪声特性,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