d维aabb树的纯python实现。

aabbtree的Python项目详细描述


< H2> AbbTe-轴对齐包围盒树< /H2>

Travis CICoverageLicense

GitHubRepositoryReadTheDocsDocumentationPyPIPyPI

aabbtree是静态d维的纯python实现 轴对齐包围盒(AABB)树。它的灵感来自 Introductory Guide to AABB Tree Collision Detectionazure从战壕

AABB Tree

左:aabb树,叶按插入顺序编号。 右图:aabbs及其边界框。

安装

aabbtree可通过pypi获得,并可通过运行以下命令安装:

pip install aabbtree

要测试软件包是否安装正确,请运行:

python -c "import aabbtree"

或者,可以通过下载 github上AABBTree repository的最新版本。提取源 然后,从顶层目录运行:

pip install -e .

根据权限的不同,可能需要--user标志。

示例

下面的示例演示如何构建aabb树并测试重叠:

>>> from aabbtree import AABB
>>> from aabbtree import AABBTree
>>> tree = AABBTree()
>>> aabb1 = AABB([(0, 0), (0, 0)])
>>> aabb2 = AABB([(-1, 1), (-1, 1)])
>>> aabb3 = AABB([(4, 5), (2, 3)])
>>> tree.add(aabb1, 'box 1')
>>> tree.does_overlap(aabb2)
True
>>> tree.overlap_values(aabb2)
['box 1']
>>> tree.does_overlap(aabb3)
False
>>> tree.add(aabb3)
>>> print(tree)
AABB: [(0, 5), (0, 3)]
Value: None
Left:
  AABB: [(0, 0), (0, 0)]
  Value: box 1
  Left: None
  Right: None
Right:
  AABB: [(4, 5), (2, 3)]
  Value: None
  Left: None
  Right: None

文档

项目文件可在 https://aabbtree.readthedocs.io

贡献

欢迎对该项目作出贡献。 请访问AABBTree repository以克隆源文件, 创建请求并提交问题。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java循环来评估所有运算符   spring@Value>无法转换“java”类型的值。lang.String“to required type”java。lang.Integer'   注册表为什么我又找不到Java SE运行时环境了?   java Intellij Spring启动运行配置   多线程如何在Java中从工作线程访问主线程?   groovy在grails应用程序中使用java代码会导致编译永无止境的循环   java从我使用switch的方法中获取2d数组   java在JVM内存的方法区域中有非静态和静态区域吗?   java验证正则表达式匹配器。find()找不到准确的键和值   java地理定位API和在半径内查找用户   java如何在正则表达式中使用逗号作为结束点?   更新关系时java Update@LastModifiedDate   数组如何在java中从同一个包中的另一个类访问变量   JVM规范和Java编译器代码对SCJP准备有用吗?   java liquibase如何获取hibernate事务?   java如何在jersey client 1.8中处理读取超时异常