如何在3D欧几里德空间中最好地表示网格图?

时间:2015-11-06 23:43:14

标签: data-structures graph grid

我正在寻找一种有效的方式来表示连通图,其中节点在空间上位于3D欧几里德空间中,并且每个节点可以具有6个边(在其各自的2D平面上和上下4个方向),但是尚未找到任何示例,可能是因为我没有使用正确的关键字。

非常感谢任何指导。

这样的结构有没有库?

3D grid

1 个答案:

答案 0 :(得分:1)

也许您正在寻找'空间'数据结构。 一个简单的例子是oct-tree(三维),它易于实现,网上也有很多实现。

网格是否一次扩展一个节点?还是一次飞机?或者您是否添加了多维数据集(例如10x10x10)的节点?

我前段时间编写了自己的多维结构,称为PH-Tree。如果添加单个节点,则可以逐个添加它们。如果添加节点的多维数据集,也许最好将这些多维数据集存储在3D数组中,然后将这些数组添加到ph-tree中,并将它们在空间中的位置作为键。

PH-Tree实现起来有点复杂,但它比octtree更快,更节省空间,至少对于大型数据集而言。 PH-Tree源是Java。

要查找的其他关键词:R-Trees(R * -Tree,R + Tree,X-Tree)和kd-trees。