#quad-tree #数据结构 #算法

quad3

一个简单的Rust实现四叉树

1 个不稳定版本

0.1.0 2023年3月5日

#2247算法

MIT 许可证

9KB
151

Quad3

Crates.io Docs.rs

一个Rust实现的四叉树。

使用方法

将以下内容添加到您的 Cargo.toml

[dependencies]
quad3 = "0.1"

示例

use quad3::prelude::*;
// Create a new quadtree with a bounding box of 20x20 centred in (0, 0) and a max amount of 4 items per node
let mut quadtree = QuadTree::new(Box2d::new(Point::new(0.0, 0.0), 10.0), 4);

assert!(quadtree.insert(&Point::new(0.0, 0.0)));
assert!(quadtree.insert(&Point::new(0.5, 0.5)));
assert!(quadtree.insert(&Point::new(-0.5, -0.5)));
assert!(quadtree.insert(&Point::new(1.5, 1.5)));
assert!(quadtree.insert(&Point::new(-1.5, -1.5)));
assert!(quadtree.insert(&Point::new(2.5, 2.5)));
assert!(quadtree.insert(&Point::new(-2.5, -2.5)));

// Query a range of 2x2 centred in (0, 0)
let points = quadtree.query_range(Box2d::new(Point::new(0.0, 0.0), 1.0));
assert_eq!(points.len(), 3);

无运行时依赖