2 个版本
使用旧的Rust 2015
0.0.2 | 2017年12月13日 |
---|---|
0.0.1 | 2017年1月18日 |
#978 in 数学
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());