#delaunay #voronoi #delaunay-triangulation #triangle #points #voronoi-diagram #space

delaunay2d

一个用于在二维空间中计算Delaunay三角剖分和Voronoi图的库

2 个版本

使用旧的Rust 2015

0.0.2 2017年12月13日
0.0.1 2017年1月18日

#978 in 数学

MIT 许可证

26KB
441

% Delaunay2D

此crate提供了一个库,用于使用Bowyer–Watson算法从一组点计算Delaunay三角剖分

虽然性能不应该很差,但仍有改进的空间。

用法

extern crate delaunay2d;

示例:Delaunay三角剖分

use delaunay2d::{Delaunay2D, Triangle};
let mut dt = Delaunay2D::new((0., 0.), 9999.);

dt.add_point((13., 12.));
dt.add_point((18., 19.));
dt.add_point((21., 5.));
dt.add_point((37., -3.));

let mut triangles = dt.export_triangles();
triangles.sort_by_key(|t| (t.0, t.1, t.2));
assert_eq!(vec![Triangle(2,1,0), Triangle(3, 1, 2)], triangles);

示例:Voronoi区域

use delaunay2d::{Delaunay2D};
let mut dt = Delaunay2D::new((0., 0.), 9999.);

dt.add_point((13., 12.));
dt.add_point((18., 19.));
dt.add_point((21., 5.));
dt.add_point((37., -3.));

let (points, mut regions) = dt.export_voronoi_regions();
regions.sort();
assert_eq!(10, points.len());
assert_eq!(4, regions.len());

无运行时依赖