4 个版本
0.2.1 | 2023年2月14日 |
---|---|
0.2.0 | 2021年10月13日 |
0.1.2 | 2021年10月12日 |
0.1.0 | 2020年6月30日 |
#487 in 可视化
1,665 每月下载量
用于 3 crates
155KB
843 行
voronator
将 d3-delaunay
和 delaunator
库移植到 Rust。
此包实现了点集的 Voronoi 图构造,作为 Delaunay 三角剖分的一种对偶。它还实现了 Delaunay 三角剖分的质心镶嵌构造,灵感来源于 Red Blob Games。
示例
extern crate voronator;
extern crate rand;
use voronator::VoronoiDiagram;
use voronator::delaunator::Point;
use rand::prelude::*;
use rand::distributions::Uniform;
fn main() {
let mut rng = rand::thread_rng();
let range1 = Uniform::new(0., 100.);
let range2 = Uniform::new(0., 100.);
let mut points: Vec<(f64, f64)> = (0..10)
.map(|_| (rng.sample(&range1), rng.sample(&range2)))
.collect();
let diagram = VoronoiDiagram::<Point>::from_tuple(&(0., 0.), &(100., 100.), &points).unwrap();
for cell in diagram.cells() {
let p: Vec<(f32, f32)> = cell.points().into_iter()
.map(|x| (x.x as f32, x.y as f32))
.collect();
println!("{:?}", p);
}
}
可能输出