#voronoi-diagram #geometry #algorithm #fortune #compute #point

voronoi

一个用于计算沃罗诺伊图的库,使用了福琼的扫描线算法

5 个版本

使用旧的 Rust 2015

0.1.4 2017年11月26日
0.1.3 2017年9月27日
0.1.2 2017年9月27日
0.1.1 2017年9月26日
0.1.0 2017年9月26日

#2314算法

Download history 48/week @ 2024-03-08 31/week @ 2024-03-15 21/week @ 2024-03-22 39/week @ 2024-03-29 23/week @ 2024-04-05 26/week @ 2024-04-12 35/week @ 2024-04-19 25/week @ 2024-04-26 28/week @ 2024-05-03 30/week @ 2024-05-10 25/week @ 2024-05-17 24/week @ 2024-05-24 24/week @ 2024-05-31 17/week @ 2024-06-07 18/week @ 2024-06-14 22/week @ 2024-06-21

87 每月下载量

MIT 许可证

48KB
1K SLoC

voronoi

这是沃罗诺伊图的福琼扫描线算法的 Rust 实现。

在线文档

使用方法

要使用,请将以下行添加到 Cargo.toml 中的 [dependencies]

voronoi = "0.1.4"

或者,

voronoi = { git = "https://github.com/petosegan/rust_voronoi.git" }

示例

extern crate voronoi;
use voronoi::{voronoi, Point, make_polygons};
const BOX_SIZE: f64 = 800.;
// ...
let vor_pts = vec![Point::new(0.0, 1.0), Point::new(2.0, 3.0), Point::new(10.0, 12.0)];
let vor_diagram = voronoi(vor_pts, BOX_SIZE);
let vor_polys = make_polygons(&vor_diagram);

待办

  • 处理 geometry.rs 中的退化情况
  • 将 DCEL 面与输入点匹配
  • 重新实现数据结构,带有内存管理
  • 平衡树
  • 与其他实现进行基准测试

lib.rs:

沃罗诺伊图的福琼扫描线算法的 Rust 实现。

依赖

~1MB
~16K SLoC