小编Jom*_*ity的帖子

六边形网格中螺旋坐标和轴坐标之间的转换

我正在制作一个基于六边形图块的游戏,它会生成螺旋形状的六边形的蜂窝排列。我的目标是将世界位置(例如鼠标单击)转换为螺旋坐标(索引/图层/图层周围的位置)。我想不出如何做到这一点,所以我一直在寻找通过首先转换为轴坐标或从轴坐标转换来简化问题。如何才能做到这一点?

我的配置是尖顶的,如下: 螺旋坐标层/位置

这是螺旋索引: 螺旋坐标索引

参考轴坐标:

轴坐标

我已经有了这些螺旋坐标方程:

const Layer = (index: number): number => {
    return Math.floor((3 + Math.sqrt(12 * index - 3)) / 6);
}
const Position = (index: number, layer: number): number => {
    return index - 3 * layer * (layer - 1) - 1;
}
const Index = (layer: number, position: number): number => {
    return 3 * layer * (layer - 1) + 1 + position;
}
Run Code Online (Sandbox Code Playgroud)

math hexagonal-tiles coordinate-systems

6
推荐指数
1
解决办法
347
查看次数

标签 统计

coordinate-systems ×1

hexagonal-tiles ×1

math ×1