36个版本

0.9.5 2024年8月6日
0.9.4 2024年6月9日
0.9.3 2024年4月9日
0.9.2 2024年3月12日
0.1.0 2022年12月31日

#182 in 数学

Download history 4/week @ 2024-05-19 3/week @ 2024-06-02 159/week @ 2024-06-09 13/week @ 2024-06-16 148/week @ 2024-07-28 121/week @ 2024-08-04 14/week @ 2024-08-11

每月283次下载
用于 d3_geo_voronoi_rs

MIT 许可证

58KB
1.5K SLoC

rust d3 delaunay

2021版。

crates.io Documentation Download

关于

这是一个用于计算二维点集的Voronoi图的库。

这是d3-delaunay的移植。它处于非常早期的开发阶段。

它是将d3模块移植到RUST的集合之一

目前,代码覆盖率,如Cargo tarpaulin报告,为80%。

示例

在crate相关的git仓库中提供了三个示例网页

examples/500_points

此演示渲染与一组500个点相关的网格。点以随机方式创建。

运行应用程序

cd examples/500_points
cargo run

这将生成一个名为"mesh.svg"的文件

500 points

  • delaunay网格为蓝色。

  • Voronoi网格为绿色。

examples/stippling

使用此库 - 我已将此示例移植到RUST

https://observablehq.com/@mbostock/voronoi-stippling

eye

运行示例

cd examples/stippling
npm install
npm run build
npm run serve

目前,此示例的RUST移植在JavaScript的主事件循环中运行。这需要重构,以便主要计算可以并行运行(在Web Worker中运行)。

examples/cross_pattern

这是一个建立信心的练习。在具有对称模式的5个点中,网格可以预测。

cross_pattern

下一步

API最终确定。在泛型方面可能有优化。

我们需要一个基于 stippling 示例的配置文件目标。用于分析和识别瓶颈。

未实现的生成器

使用生成器crate的函数现在只有在启用"generator"功能时才可用。

以下函数正在快速开发中。

以下生成器函数缺失。

delaunay voronoi
neighbors() cellPolygons()

update()

d3-geo-delaunay依赖于此npm包 delauantor 的函数update()允许快速重三角化 - 以内存高效的方式。

本模块并行依赖于delaunator-rs,遗憾的是这个模块在 Rust 版本中缺失。

存在一个未解决的问题,需要添加更新函数https://github.com/mourner/delaunator-rs/issues/30

依赖项

~14–40MB
~611K SLoC