我正在 Unity 中制作一个基于十六进制的游戏,并希望通过切换坐标系来简化一些代码。我还没有找到直接从 odd-r 转换为 axis 的方法,所以......我在这里。 如果您不知道我所说的奇数 r 和轴是什么意思:http://www.redblobgames.com/grids/hexagons/#cooperatives。 我知道我可以先转换为立方体,然后再转换为轴向,但我想知道是否有任何方法可以直接转换。
function axial_to_oddr(hex):
var col = hex.q + (hex.r - (hex.r&1)) / 2
var row = hex.r
return OffsetCoord(col, row)
function oddr_to_axial(hex):
var q = hex.col - (hex.row - (hex.row&1)) / 2
var r = hex.row
return Hex(q, r)