如何直接将奇数 R 十六进制坐标转换为轴坐标?

问题描述 投票:0回答:1

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

c# hex coordinates unity-game-engine
1个回答
0
投票
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)

来源:https://www.redblobgames.com/grids/hexagons/

© www.soinside.com 2019 - 2024. All rights reserved.