12 releases (breaking)
0.10.1 | Oct 4, 2019 |
---|---|
0.9.0 | Sep 24, 2017 |
0.8.0 | Mar 19, 2016 |
0.7.1 | Nov 1, 2015 |
0.5.0 | Jun 26, 2015 |
#1428 in Algorithms
21 downloads per month
Used in city2ba
40KB
1K
SLoC
poisson
This is a library for generating n-dimensional poisson-disk distributions.
It generates distribution of points in [0, 1)d where:
- For each point there is disk of certain radius which doesn't intersect with any other disk of other points
- Samples fill the space uniformly
Due it's blue noise properties poisson-disk distribution can be used for object placement in procedural texture/world generation, as source distribution for digital stipling, as distribution for sampling in rendering or for (re)meshing.
Usage
Works with nalgebra 0.16 and rand 0.5
extern crate nalgebra as na;
use rand::FromEntropy;
use rand::rngs::SmallRng;
use poisson::{Builder, Type, algorithm};
fn main() {
let poisson =
Builder::<_, na::Vector2<f64>>::with_radius(0.1, Type::Normal)
.build(SmallRng::from_entropy(), algorithm::Ebeida);
println!("{:?}", poisson.generate());
}
Dependencies
~1.5MB
~28K SLoC