gpt4 book ai didi

hexagonal-tiles - 计算六边形网格上的距离

转载 作者:行者123 更新时间:2023-12-03 21:47:18 24 4
gpt4 key购买 nike

我想要做的是找出六角网格上两点之间有多少个六边形。我曾尝试在线搜索公式,但找不到与我使用的十六进制网格类型相匹配的公式。

六边形网格布局如下,具有相同的坐标系:http://www.gamedev.net/index.php?app=core&module=attach&section=attach&attach_rel_module=ccs&attach_id=1962

我知道使用这个坐标系可能无法做到这一点,但这是我回去更改它之前的最后一次努力。
非常感谢您提前。

最佳答案

如果您使用了沿两个方向的六边形纹理的坐标系,您可以使用:

distance = max(
abs(dest.y - start.y),
abs(dest.x - start.x),
abs((dest.x - dest.y)*-1 - (start.x - start.y)*-1)
)

但是您没有,您使用的是波浪形坐标系,该坐标系仅沿一个方向(水平)与纹理一致。幸运的是,我们可以使用
straight.y = squiggle.y
straight.x = ciel(squiggle.y / -2) + squiggle.x

因此,使用这个方程组求解距离可以得到:
distance = max(
abs(dest.y - start.y),
abs(ceil(dest.y / -2) + dest.x - ceil(start.y / -2) - start.x),
abs(-dest.y - ceil(dest.y / -2) - dest.x + start.y + ceil(start.y / -2) + start.x)
)

这将仅使用它们的坐标为您提供两个六边形之间的曼哈顿距离(假设我没有在转换 x 和 y 时犯任何错别字,因为您的网格与我的网格旋转了 90 度)。但是你必须给我的中学代数老师买一块 cookies 才能起作用,否则我会把分配属性搞砸。

注意:可能需要摆弄负坐标,我没有检查。

关于hexagonal-tiles - 计算六边形网格上的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14491444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com