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 数学
每月283次下载
用于 d3_geo_voronoi_rs
58KB
1.5K SLoC
rust d3 delaunay
2021版。
关于
这是一个用于计算二维点集的Voronoi图的库。
这是d3-delaunay的移植。它处于非常早期的开发阶段。
它是将d3模块移植到RUST的集合之一
- d3_geo_rs
- d3_delaunay_rs
- d3_geo_voronoi_rs
目前,代码覆盖率,如Cargo tarpaulin报告,为80%。
示例
在crate相关的git仓库中提供了三个示例网页
examples/500_points
此演示渲染与一组500个点相关的网格。点以随机方式创建。
运行应用程序
cd examples/500_points
cargo run
这将生成一个名为"mesh.svg"的文件
-
delaunay网格为蓝色。
-
Voronoi网格为绿色。
examples/stippling
使用此库 - 我已将此示例移植到RUST
https://observablehq.com/@mbostock/voronoi-stippling
运行示例
cd examples/stippling
npm install
npm run build
npm run serve
目前,此示例的RUST移植在JavaScript的主事件循环中运行。这需要重构,以便主要计算可以并行运行(在Web Worker中运行)。
examples/cross_pattern
这是一个建立信心的练习。在具有对称模式的5个点中,网格可以预测。
下一步
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