【问题标题】:How to search objects affecting a point in space如何搜索影响空间点的对象
【发布时间】:2013-05-06 04:40:24
【问题描述】:

假设您有一个大网格。您有对点集进行操作的对象。假设内存可用,大概实现这一点以在运行时具有合理性能的合理方法(即合理大小的游戏网格)是:

对于每个点,您都有指向在特定点上操作的每个对象的指针。

让我们假设网格的精度令人望而却步,并且您不想为每个点存储指针,大概您会实现类似的东西:

分层分割网格

下一个问题是,在一组所述子集中找到包含一个点的空间子集的最佳方法是什么?

也许:

可以在整个集合中进行简单的选择搜索 (N),也可以索引原点/反向 pos 轴,然后进行匹配范围的交集。

关于存储在内存数据结构中的对象的属性的索引,大概可以最佳地实现:

维护对象属性的 B-Tree 索引 搜索索引并为查询做相交/联合

所以本质上这是一个关于是否:

  1. 我是否错过了从网格请求此类信息的某些内容?
  2. 通常如何实现内存中的索引(当然,考虑到交集的成本很高,它们可能只对具有小范围的大集合有用?)

Sorted String Table (SSTable) or B+ Tree for a Database Index?

有那个线程。我不明白他们如何将索引存储在看起来像数组的东西中。他们如何绕过插入/转移到(动态/磁盘上)阵列中间的 N 成本?

【问题讨论】:

  • 看看 k-D 树或四叉树。

标签: algorithm sorting search


【解决方案1】:

如果我正确理解您的问题,因为您的对象在网格上的一系列点上进行操作,那么您可以使用 2-dimensional interval tree 来表示它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2021-01-19
    • 2012-12-24
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    相关资源
    最近更新 更多