当前位置: 首页 > wzjs >正文

广州模板建站多少钱想学网站建设 如何开始

广州模板建站多少钱,想学网站建设 如何开始,免费网站免费在线观看,临夏市建设局网站1. 二位坐标转六边形棋盘的方式 1-1这是“波动式”的 这种就是把【方格子坐标】“左右各错开半个格子”做到的 具体来说有如下几种情况 具体到庙算平台上,是很巧妙的用一个4位整数,前两位为x、后两位为y来进行表示 附上计算距离的代码 def get_hex_di…

1. 二位坐标转六边形棋盘的方式

1-1这是“波动式”的

这种就是把【方格子坐标】“左右各错开半个格子”做到的

具体来说有如下几种情况

具体到庙算平台上,是很巧妙的用一个4位整数,前两位为x、后两位为y来进行表示 

附上计算距离的代码

def get_hex_distance(x1, y1, x2, y2):"""计算六边形网格中两个点之间的曼哈顿距离。假设使用奇数行偏移坐标系(odd-r offset)。"""dx = x2 - x1dy = y2 - y1return max(abs(dx), abs(dy), abs(dx + dy))

有多种计算方式的话可以用以下代码测试【可以对照着上面的图一个个格子数需要走几步】


def get_hex_distance(x1, y1, x2, y2):"""计算六边形网格中两个点之间的曼哈顿距离。假设使用奇数行偏移坐标系(odd-r offset)。"""dx = x2 - x1dy = y2 - y1return max(abs(dx), abs(dy), abs(dx + dy))def get_grid_distance(row1, col1, row2, col2): # TODO: not sure"""计算两个坐标间距离:param pos1::param pos2::return:"""'''转换为立方坐标'''q1 = col1 - (row1 - (row1 & 1)) // 2r1 = row1s1 = 0 - q1 - r1q2 = col2 - (row2 - (row2 & 1)) // 2r2 = row2s2 = 0 - q2 - r2'''输出距离为曼哈顿距离的1/2'''return (abs(q1 - q2) + abs(r1 - r2) + abs(s1 - s2)) // 2def test_hex_distance():"""测试 get_hex_distance 和 get_grid_distance 函数的正确性。"""# 测试用例:六边形网格中的点及其预期距离test_cases = [# 格式: (x1, y1, x2, y2, expected_distance)((0, 0, 0, 0), 0),  # 同一个点((0, 0, 1, 0), 1),  # 相邻点((0, 0, 1, 1), 2),  # ((0, 0, 2, 0), 2),  # 两步距离((0, 0, 2, 2), 4),  # ((0, 0, 3, 0), 3),  # 三步距离((0, 0, 3, 3), 6),  # ((1, 1, 4, 4), 6),  # ]print("Testing get_hex_distance:")for (x1, y1, x2, y2), expected in test_cases:try:result = get_hex_distance(x1, y1, x2, y2)print(f"get_hex_distance({x1}, {y1}, {x2}, {y2}) = {result}, expected = {expected}")if result != expected:raise ValueError(f"Test failed for get_hex_distance({x1}, {y1}, {x2}, {y2})")except Exception as e:print(f"Test failed: {result} {(x1, y1, x2, y2, expected, 'get_hex_distance')}")print("\nTesting get_grid_distance:")for (row1, col1, row2, col2), expected in test_cases:try:result = get_grid_distance(row1, col1, row2, col2)print(f"get_grid_distance({row1}, {col1}, {row2}, {col2}) = {result}, expected = {expected}")if result != expected:raise ValueError(f"Test failed for get_grid_distance({row1}, {col1}, {row2}, {col2})")except Exception as e:print(f"Test failed: {result} {(row1, col1, row2, col2, expected, 'get_grid_distance')}")if __name__ == "__main__":test_hex_distance()

1-2这是斜的

此外还有几种,可以看看外国Red Blob Games的博客(链接在最下方)

2.三维立方体转三维方式

用三个坐标来唯一确定一个格子,这样也更加直观,也是一种方式

参考资料:

6边形网格地图,格子间的距离计算 | indienova 独立游戏https://indienova.com/u/npc233/blogread/11298

Hexagonal Gridshttps://www.redblobgames.com/grids/hexagons/


文章转载自:

http://i57sGaQr.hrjrt.cn
http://SZd9AZ6f.hrjrt.cn
http://7B98Qqif.hrjrt.cn
http://fl7OyDHJ.hrjrt.cn
http://KCsGxtDl.hrjrt.cn
http://aV9xXNE3.hrjrt.cn
http://nhapoirv.hrjrt.cn
http://pwkPveO7.hrjrt.cn
http://Dfaq4Hn2.hrjrt.cn
http://5TI06oFI.hrjrt.cn
http://WCwLmOuh.hrjrt.cn
http://mVBcHIYZ.hrjrt.cn
http://N9qxcBNr.hrjrt.cn
http://V7N9siJN.hrjrt.cn
http://LsVPgURk.hrjrt.cn
http://XRFdjgLo.hrjrt.cn
http://eVBTMpkA.hrjrt.cn
http://A17jOmwp.hrjrt.cn
http://dpBFIDrs.hrjrt.cn
http://pnFZ4R92.hrjrt.cn
http://Tl38lrW7.hrjrt.cn
http://pOYiH5VM.hrjrt.cn
http://PUmE4Cj7.hrjrt.cn
http://XE0AHQWY.hrjrt.cn
http://ws3dN5yn.hrjrt.cn
http://FwYMUcC9.hrjrt.cn
http://aP2q6kfb.hrjrt.cn
http://4dWZMeoT.hrjrt.cn
http://qjibxG3f.hrjrt.cn
http://hPSQvVf6.hrjrt.cn
http://www.dtcms.com/wzjs/610225.html

相关文章:

  • 丰台网站开发联系电话怎么给网站做优化
  • 做网站是不是要学编程app软件开发官网
  • 纯文本网站连接营销软文是什么
  • 网站优化包括整站优化吗舟山建设技术学校网站首页
  • 网站开发可能遇到的问题丰县微网站开发
  • 湖南企业建网站公司资讯网站做app
  • 定制制作网站开发长沙有什么好玩的
  • 泸州网站制作洛阳app开发公司
  • 请人做网站买断域名做网站所需知识
  • 大兴网站开发公司浙江网站建设专家评价
  • 网站及管理系统四川建设网是什么单位
  • 企业网站制作费做分录wordpress后台邓丽
  • 网站备案 公司注销吗wordpress删除目录按固定连接
  • 注册网站的免费网址是什么餐厅vi设计公司
  • 树形菜单的网站代码西安企业网站建设哪家好
  • 百度云盘做网站空间响应式网站建设的未来发展6
  • 广州市企业网站建设企业网站建设工具有哪些
  • 潍坊建设厅网站织梦系统做导航网站
  • 利用access数据库做网站洛阳又发现一例
  • 小欢喜林磊儿什么网站做家教获取网页 代码 做网站
  • 营销型网站建设合同范本南阳seo网站排名
  • 网站建设印花税有人找做网站的
  • 移动网站与pc网站北京网站
  • 做视频网站资金多少建设企业网站体会
  • 北京网站开发外包网站建设 海南
  • 怎么搭建免费网站设计网装修
  • 广西城乡住房建设厅网站首页天津网络营销公司
  • 政务系统网站建设wordpress二步验证
  • 响应式手机网站wordpress 浮框
  • 常州网站建设公司推荐什么文案容易上热门