Cube Coordinates for Hex Grids
六边形 cube 坐标(Cube Coordinates for Hex Grids)把六边形网格看作三维立方体网格中 q + r + s = 0 的斜切平面。每个六边形由三元组 q,r,s 表示,并始终满足三轴和为 0 的约束。
核心性质
Cube 坐标支持向量操作:坐标可以相加、相减、缩放和插值。这个性质让邻居、距离、线段绘制、旋转、反射、环和范围都能用短公式表达。
六个相邻方向可以表示成三轴中一个加 1、另一个减 1、第三个保持 0 的六种组合。距离可写成:
(abs(dq) + abs(dr) + abs(ds)) / 2
也可写成:
max(abs(dq), abs(dr), abs(ds))
典型用途
- Hex Grid Distance:直接用 cube 坐标差计算最短步数。
- Hex Grid Line Drawing:在线段端点间做浮点插值,再用
cube_round转回格子。 - 旋转和反射:围绕中心先转成向量,再变换
q,r,s,最后加回中心。 - 环和螺旋:从中心沿一个方向走到半径处,再沿六个方向绕行。