3个版本
0.1.3 | 2023年6月13日 |
---|---|
0.1.2 | 2019年4月6日 |
0.1.1 | 2019年4月6日 |
#466 在 可视化
每月 1,039 次下载
在 3 crates 中使用
62KB
939 代码行
quadtree_rs
点/区域四叉树 支持重叠区域。
有关文档,请参阅 docs.rs/quadtree_rs.
快速入门
use quadtree_rs::{area::AreaBuilder, point::Point, Quadtree};
// Instantiate a new quadtree which associates String values with u64
// coordinates.
let mut qt = Quadtree::<u64, String>::new(/*depth=*/4);
// A depth of four means a square with width (and height) 2^4.
assert_eq!(qt.width(), 16);
// Associate the value "foo" with a rectangle of size 2x1, anchored at (0, 0).
let region_a = AreaBuilder::default()
.anchor(Point {x: 0, y: 0})
.dimensions((2, 1))
.build().unwrap();
qt.insert(region_a, "foo".to_string());
// Query over a region of size 2x2, anchored at (1, 0).
let region_b = AreaBuilder::default()
.anchor(Point {x: 1, y: 0})
.dimensions((2, 2))
.build().unwrap();
let mut query = qt.query(region_b);
// The query region (region_b) intersects the region "foo" is associated with
// (region_a), so the query iterator returns "foo" by reference.
assert_eq!(query.next().unwrap().value_ref(), "foo");
有问题?
请在GitHub上提交问题。
作者
查看 Cargo.toml
.
贡献
查看 CONTRIBUTING.md
和 NOTES.md
许可证
本项目采用Apache 2.0许可证。
免责声明
这不是官方的Google产品。
待办事项
- 美化打印四叉树函数,绘制密度图
- 基准测试
依赖项
~3MB
~67K SLoC