【问题标题】:What is the most efficient way to determine if a point is in any number of boxes确定一个点是否在任意数量的框中的最有效方法是什么
【发布时间】:2011-06-12 09:30:43
【问题描述】:

我知道如何检查 X、Y 点是否为单个矩形区域,但假设我有多个可能重叠的区域(这些区域将具有 X、Y、宽度、高度、Z 索引(或 x1、 y1,x2,y2 如果这更容易的话——我不关心我如何存储它,如果它是相关的)

是否有任何有效的算法来确定点是否在某个区域内,而不必遍历每个区域。

我更喜欢在添加或删除区域时不需要很长时间重新计算的东西,但是这会比查找少。

谢谢!

【问题讨论】:

  • 这些矩形是否与 x 轴和 y 轴对齐?

标签: c++ algorithm processing-efficiency


【解决方案1】:

您可以将您的区域存储到Quadtree(如果是 3D,则为八叉树)。这将帮助您在进入真正的碰撞测试之前拒绝大部分区域。

如果您有多个层,只需每层有一个四叉树,并根据您的点所在的层使用相关的四叉树。

【讨论】:

  • 谢谢!这正是我一直在寻找的——不知何故,我在自己的研究中完全错过了这些!
【解决方案2】:

【讨论】:

    猜你喜欢
    • 2022-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多