Axial Coordinates for Hex Grids

Axial Coordinates for Hex Grids

六边形 axial 坐标(Axial Coordinates for Hex Grids)是 Cube Coordinates for Hex Grids 的二轴存储形式。它只保存 q,r,需要第三轴时用 s = -q-r 计算。

为什么常用

Axial 坐标保留了 cube 坐标的大部分算法优点:可以相加、相减、缩放,邻居方向固定,距离公式可由 cube 距离内联得到。它的存储量少于 cube 坐标,是 Red Blob Games 推荐的常用存储形式之一。

距离公式

Axial 距离可以先转成 cube 再计算,也可以内联为:

(abs(a.q - b.q)
 + abs(a.q + a.r - b.q - b.r)
 + abs(a.r - b.r)) / 2

这个公式来自 cube 坐标上的曼哈顿距离。

与地图存储

Axial 坐标在菱形地图上可直接映射到数组。矩形、六边形和三角形地图可用 Hex Grid Map Storage 中的偏移索引或哈希表存储。

来源