Data structures 不规则网格的数据结构

Data structures 不规则网格的数据结构,data-structures,unity3d,grid,kdtree,sector,Data Structures,Unity3d,Grid,Kdtree,Sector,我想知道对于包含不同大小的矩形/正方形作为游戏地图扇区的网格,最好的数据结构是什么。我需要通过简单的xyz坐标访问该网格内的对象 搜索了KdTrees,但他们似乎找到了最近的对象,我也找到了片段树/间隔树,但几乎没有关于它们的信息 干杯。你可以使用八叉树。也就是说,可以从包含整个区域0、0、0、x、y的矩形平行六面体开始,zit是树的根。在下一步中,将其拆分为8个矩形平行六面体s0、0、0、x/2、y/2、z/2、0、0、z/2、x/2、y/2、z等。这8个矩形平行六面体是根的子体。继续为它们

我想知道对于包含不同大小的矩形/正方形作为游戏地图扇区的网格,最好的数据结构是什么。我需要通过简单的xyz坐标访问该网格内的对象

搜索了KdTrees,但他们似乎找到了最近的对象,我也找到了片段树/间隔树,但几乎没有关于它们的信息
干杯。

你可以使用八叉树。也就是说,可以从包含整个区域0、0、0、x、y的矩形平行六面体开始,zit是树的根。在下一步中,将其拆分为8个矩形平行六面体s0、0、0、x/2、y/2、z/2、0、0、z/2、x/2、y/2、z等。这8个矩形平行六面体是根的子体。继续为它们中的每一个递归地构建树。当矩形平行六面体完全位于一个区域内时,递归应停止,使其成为树的一片叶子

要回答一个问题,从八叉树的根开始,找到一个合适的子树,直到找到一片叶子为止


也可以采用k-d树来解决这个问题。这个想法与上面描述的类似:将一个空间分成两个半空间,递归地为每个半空间构建一棵树。递归的基本情况也是一样的:一旦当前子空间只在一个区域内,递归就应该停止

简单开始:一个矩形数组就可以了。