5 个不稳定版本
0.3.1 | 2024 年 2 月 9 日 |
---|---|
0.3.0 | 2024 年 2 月 9 日 |
0.2.0 | 2024 年 2 月 9 日 |
0.1.1 | 2024 年 2 月 7 日 |
0.1.0 | 2024 年 2 月 7 日 |
290 在 数学 中
每月 28 次下载
1MB
22K SLoC
qhull-rs
安全的 Rust Qhull 绑定
Qhull 计算凸包、Delaunay 三角剖分、Voronoi 图、关于点的半空间交集、最远点 Delaunay 三角剖分和最远点 Voronoi 图。源代码在 2-d、3-d、4-d 和更高维度上运行。Qhull 实现了用于计算凸包的 Quickhull 算法。它可以处理浮点运算中的舍入误差。它计算体积、表面积和凸包的近似值。
Qhull 不支持非凸表面的三角剖分、非凸对象的网格生成、9-D 及以上中等大小的输入、alpha 形状、加权 Voronoi 图、Voronoi 体积或约束 Delaunay 三角剖分。
- Qhull 主页 (检索日期:2024-09-02)
快速入门
cargo run --example hull
二进制文件
qhull-rs
从原始 Qhull 源代码提供了一些二进制目标
qconvex
qdelaunay
qhalf
qhull
qvoronoi
rbox
要获取它们
cargo install qhull
qhull
用法
将此添加到您的 Cargo.toml
qhull = "0.3"
对于当前的开发版本
[dependencies]
qhull = { git = "https://github.com/LucaCiucci/qhull-rs" }
示例
2D 凸包
use qhull::Qh;
let qh = Qh::builder()
.compute(true)
.build_from_iter([
[0.0, 0.0],
[1.0, 0.0],
[0.0, 1.0],
[0.25, 0.25],
]).unwrap();
for simplex in qh.simplices() {
let vertices = simplex
.vertices().unwrap()
.iter()
.map(|v| v.id())
.collect::<Vec<_>>();
println!("{:?}", vertices);
}
有关更多示例,请参阅 examples
模块/文件夹。
许可证
此 crate 使用 Qhull,请在使用此 crate 时参阅 Qhull 许可证 以获取更多信息。
依赖项
~0–2MB
~40K SLoC