#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 • Rust 包仓库 48/week @ 2024-03-08 • Rust 包仓库 31/week @ 2024-03-15 • Rust 包仓库 21/week @ 2024-03-22 • Rust 包仓库 39/week @ 2024-03-29 • Rust 包仓库 23/week @ 2024-04-05 • Rust 包仓库 26/week @ 2024-04-12 • Rust 包仓库 35/week @ 2024-04-19 • Rust 包仓库 25/week @ 2024-04-26 • Rust 包仓库 28/week @ 2024-05-03 • Rust 包仓库 30/week @ 2024-05-10 • Rust 包仓库 25/week @ 2024-05-17 • Rust 包仓库 24/week @ 2024-05-24 • Rust 包仓库 24/week @ 2024-05-31 • Rust 包仓库 17/week @ 2024-06-07 • Rust 包仓库 18/week @ 2024-06-14 • Rust 包仓库 22/week @ 2024-06-21 • Rust 包仓库

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