8得票3回答
四叉树遍历

我正在尝试为四叉树实现一个前向迭代器。不幸的是,我似乎找不到关于四叉树遍历的任何资源。 有人能指点我正确的方向吗?

85得票8回答
何时使用二进制空间分割、四叉树、八叉树?

最近我了解了二元空间分割树及其在3D图形和碰撞检测中的应用。我也简要地浏览了与四叉树和八叉树相关的材料。什么情况下应该使用四叉树而不是BSP树,反之亦然?它们是否可互换?如果我有足够的信息来填写如下表格,那就满意了: | BSP | Quadtree | Octree -...

8得票1回答
构建四叉树以使相邻节点之间只有一个层级差异(LOD)

我正在尝试构建四叉树,它基于一个位置和一个最大深度来细分一个区域。我想用这个来实现地形的细节级别。换句话说,我有一个位置(x, y),一个区域(x, y, width),并将其传递给一些方法build(region, position, maxDepth),然后应该返回覆盖整个平面的节点数组。...

34得票3回答
在Mathematica中实现四叉树

我在Mathematica中实现了quadtree。作为一个新手,我想知道是否可以通过更好地利用模式来改进或使其更加紧凑。 (我明白通过修剪未使用的节点可以优化树,并且可能会有更好的数据结构,如k-d树用于空间分解。) 此外,我仍然不确定每次添加新点时都要复制整个树/表达式的想法。但我的理...

13得票1回答
什么是粗略和精细的网格搜索?

我正在阅读这个回答: 高效(且解释得很好)的二维碰撞检测四叉树实现 并遇到了这段文字: 好吧,事实上四叉树不是我用于此目的的首选数据结构。我更倾向于使用网格层次结构,例如一个粗糙的世界网格、一个更精细的区域网格和一个更精细的子区域网格(3个密集级别的固定网格,没有涉及到树结构),使...

8得票6回答
用于C++游戏的四叉树与红黑树哪个更好?

我已经在网上寻找四叉树/四叉树节点的实现很长时间了。有一些基础知识,但没有什么东西可以真正用于游戏。 我的目的是为了在游戏中存储对象,以处理诸如碰撞检测之类的事情。 我不确定四叉树是否是最好的数据结构,但从我所读到的来看,它是最好的。我已经编写了一个红黑树,但我不确定性能是否足够好,因为我的...

7得票3回答
四叉树如何处理非正方形区域?

我了解四叉树在方形图像上的工作原理(通过将图像分割直到该部分为单一颜色,并将其存储在叶节点中)。 如果图像的一个维度比另一个维度更长,那么最小子单位可能是2x1像素区域,这使得使用四叉树分割方法来存储单一颜色变得困难。您将如何解决此问题?

30得票1回答
四叉树和kd树的区别

四叉树和kd-tree之间的主要区别是什么?我知道它们都可以在多个维度中分割点,但我不明白为什么会选择其中之一。我需要一种结构,可以让我计算在给定区域内有多少个点(2D点)。基本上,我正在尝试检测点的聚集。

7得票1回答
2D遮挡剔除的最佳解决方案

在我的2D游戏中,我有静态和动态的物体。可能会有多个相机。我的问题是:确定与当前相机视图矩形相交的对象。 目前,我只是迭代所有现有的对象(无论是动态还是静态),并在它们上执行与相机视图矩形的AABB检查。这对于非常动态的对象似乎是可接受的,但对于静态对象而言就不一样了,因为可能有成千上万个静...

17得票6回答
存储物品以便通过x,y坐标进行定位

我正在尝试确定一种快速存储一组对象的方法,每个对象都有x和y坐标值,以便我可以快速检索某个矩形或圆周内的所有对象。 对于小的对象集(~100),简单地将它们存储在列表中并进行迭代是相对快速的。但是,对于更大的组,这样做会变得非常缓慢。 我还尝试将它们存储在一对TreeMaps中,一个按x坐标排...