递归构建十六进制网格

时间:2017-05-26 18:18:09

标签: algorithm optimization tree

对于一个有趣的侧面项目,我一直在尝试构建一个生成音色拉图的工具,它基本上就像这样的六角网格:

只是为了添加娱乐,我想以递归方式生成这个网格。所以基本上Node会有6个子节点存储在一个数组中(第0个索引是左边或最西边的子节点,然后是顺时针方向)。

我遇到的问题是递归函数,发现孩子是否已经作为另一个节点创建的一部分存在,如果是,则将现有节点添加到子数组而不是创建一个新节点作为子节点

我试过给每个节点一个假的" x-y" id并传递一个数组作为递归的一部分,以查看是否存在大部分但无法扩展的东西,我觉得有一种聪明的方法可以生成这个我错过的。有没有人遇到这样的问题?

1 个答案:

答案 0 :(得分:2)

您可以构建这样的坐标系。

enter image description here

所以每个网格(x,y)连接到(x-1,y),(x-1,y + 1),(x,y + 1),(x + 1,y + 1), (x + 1,y),(x + 1,y-1)和(x,y-1)。