是否有3D等效的十六进制贴图?


26

基于十六进制的地图平铺与基于正方形的地图平铺的最大优点可能是,每个十六进制的中心与所有相邻十六进制的距离相同。是否有类似的形状以这种方式在3D模式下平铺,并且引擎支持这种模型?


您实际上是在问两个问题(不建议)。关于3D形状(我认为不是立方体)的第一个问题确实属于math.stackexchange.com。第二个问题与游戏相关,尽管我怀疑答案是否定的。:)
独眼巨人

1
正方形到所有相邻正方形的距离也相同(假设邻居是共享边的正方形)
bummzack 2011年

2
我确实考虑过将其放在数学上,但我认为该主题可能与现实世界的适用性过于接近;)但我会尽力而为。
哈克沃思(Hackworth)

@bummzack如果从这个问题来看不是很明显,我当然指的是您将所有8个正方形都算作相邻的,即3D中有26个立方体的情况。
哈克沃思

我对您的问题进行了一些编辑,以淡化开头部分的“误解”,并更加关注引擎方面。
乔什(Josh)

Answers:


19

Google和Wikipedia标签小组进行了救援:

细分,尤其是对于3D而言,Honeycomb是要寻找的术语。多维数据集确实是3D空间中唯一的规则(所有面都是一致的)和空间填充(没有球体填充时没有间隙)的多面体。但是它们与2D正方形存在相同的问题-到其邻居的距离差异很大。

一个截角八面体堆砌制成的截断八面体(太拗口)非常接近了我的要求。缺点是,截短的八面体不是规则的(正方形和六边形作为面),并且其邻域少于立方体(14对26),但是它用单个重复的实体填充空间,并且与其所有空间(大致)相等邻居。


+1有趣。您的多维数据集邻居计数似乎已关闭(应该是26而不是28?)。
bummzack 2011年

+1蜂窝,很好。我知道结构,忘记了名字。
工程师

9

2D六角形贴图表示装填在平坦(2D)托盘中的球体,每个十六进制均以等效球体为中心,并且只需计算点数即可确定单元之间的距离是否可行(无论出于游戏目的)。穿过的六边形单元格。

等效的3D表示形式是上述使用菱形十二面体的面心立方(FCC)/立方密堆积(CCP)消息传递。

三维面心立方细分

这篇Wikipedia文章特别提到了FCC / CCP,而另一篇文章将其与六边形紧密堆积(HCP)进行了比较,但第二篇文章趋于更加数学化。

我一直在研究它们在RPG映射中的使用,但是尽管它们具有吸引人的“正确性”(数学基础,无间隙地包装空间的能力,通过晶格获取切片时的对称性等),实际用于游戏目的的问题似乎是玩家/ GM对其进行可视化时遇到的困难,并且缺乏用于引用它们的明显坐标系。

尽管让我感到痛苦,但具有{x,y,z}坐标的简单多维数据集看起来像是一种更为简单的解决方案,它使每个人都可以专注于游戏玩法,而不是一直为映射标准的非平凡选择所困扰。

尽管这条线很晚,但仅需2美分。

哦,除了以空间为主题的设置之外,每个像元还有十二个相邻像元(在上面三个,在下面三个,在平面周围六个),这允许整洁的星座/天文链接。想象一下起始单元中的一个家庭扇区,然后以一个占星术星座之一命名每个相邻的扇区。就像可以将十六进制图分解为较小的十六进制一样,可以将FCC单元分解为较小的单元,从而将以星座命名的每个扇区分解为子扇区。“让我们为双子座部门的031子部门设定路线” ...

斯图尔特


如果您愿意,我想与您讨论RPG的3D十六进制坐标问题。
凯尔·斯特兰德

6

六角形晶格有两个简单的3D类似物:六边形紧密堆积(HCP)和立方紧密堆积(aka Face-Centered Cubic(CCP / FCC)晶格)。

这两个晶格都非常相似:每个站点具有相同数量的最近邻点(12),并且具有相同的球体填充密度(〜74%),并且它们都可以分解为堆叠的2D十六进制晶格。

在这两者中,我认为CCP晶格有点“更黑”:它更加对称,没有像HCP晶格那样的首选轴。特别是,如果您要坐在CCP晶格的一个单元内并查看最近的相邻晶胞之一,则无论您正在查看哪个相邻晶胞,晶格都将看起来相同。对于HCP晶格,这并不成立。

CCP 拼贴的单元格是很好的对称菱形十二面体,而HPC的单元格被扭曲成梯形-菱形十二面体。这是一张来自维基百科的菱形十二面体平铺形成CCP晶格的图片:

菱形十二面体瓷砖

(图片来自Wikipedia用户AndrewKepert,根据GFDL 1.2+ / CC-By-SA 3.0许可。)

另请注意,正如备用名称“以面为中心的立方晶格”所暗示的那样,有一个非常简单的公式可用于查找CCP晶格中的单元的中心:从一个简单的立方晶格开始,点位于多维数据集的角,并在立方体表面的中心添加新点。拐角处的点的最近邻居是在12个相邻面上的点,而这些面上的点的最近邻居是在相邻拐角处的4个加上两个立方体的相邻面的相邻面上的8个。中心点在于。(使用某些几何图形,您可以证明实际上所有点的邻域看起来都是相同的,即使这种构造使“面点”与“角点”看起来好像也不同。)

(注意:我上面链接到的MathWorld页面似乎包含一个错误,给出了相关的,非密排的“以身体为中心的立方”晶格的密度也为74%,实际上是68%。)


5

我同意@Cyclops的观点,最好在数学堆栈交换中问这个问题,但是与此同时,您可能希望研究六角密堆积结构。这是3D球体中最密集的排列方式,尽管到所有相邻物体的距离并不均匀,但这可能是最好的选择。该钻石立方晶格有直接邻居相等的距离,但它是相当松散的,而且每个点只有四个相邻的点。


HCP确实运行良好。您只需要稍微“挤压”层,以使单元中心之间的距离在每个方向都相同。因此,一个单元在同一平面上具有十二个邻居-三个向上,三个向下和六个。
马丁·索卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.