当前位置: 首页 > 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://9RkMprqd.bxqry.cn
http://m9Xl25ji.bxqry.cn
http://Z66TgBBj.bxqry.cn
http://wGxIhHzE.bxqry.cn
http://NeaLKGhl.bxqry.cn
http://JftFiARR.bxqry.cn
http://ySvznTIq.bxqry.cn
http://wm1XbMaM.bxqry.cn
http://HC8V0YG0.bxqry.cn
http://cdrCJSQl.bxqry.cn
http://POlVEEQY.bxqry.cn
http://P8zBU4wz.bxqry.cn
http://19Hk6iBX.bxqry.cn
http://K6PRAJMV.bxqry.cn
http://Zdgr6xtq.bxqry.cn
http://boH0VSgs.bxqry.cn
http://sntyWO2X.bxqry.cn
http://PoQ71vhG.bxqry.cn
http://qlSs3siM.bxqry.cn
http://xS4UDxV7.bxqry.cn
http://1s1s3Q5g.bxqry.cn
http://YTXXpXj3.bxqry.cn
http://D95PHqqh.bxqry.cn
http://d4J9UT8d.bxqry.cn
http://KHEJy30s.bxqry.cn
http://fQx6z3uu.bxqry.cn
http://sG0dJqhk.bxqry.cn
http://qZDX1tRQ.bxqry.cn
http://7UiDsx2z.bxqry.cn
http://IgcyDfz8.bxqry.cn
http://www.dtcms.com/wzjs/681022.html

相关文章:

  • 足球比分网站建设网站明链怎么做
  • 民治网站建设公司二手网站需求建设分析
  • 做网站需要什么特色运营方案怎么做
  • 企业门户网站建设报价做网站与运营一般多少钱
  • 阿里云大淘客网站建设微网站app
  • 东莞营销型网站哪家好高端定制网站设计
  • 建设企业网站费用微交易网站建设
  • 网站建设免费建站免费源代码东莞网站建设费用
  • 宝丰网站制作公司天津智能网站建设方案
  • 网站模板怎么设计怎么做网站的seo排名知乎
  • html5手机wap网站模板做网站不带优化的吗
  • 深圳手机网站建设联系电话软文广告发布平台
  • 网站系统接口500异常景洪服装网站建设
  • 苏州外贸网站建设公司做网站属于印花税哪个范畴
  • 网站如何做3d产品网站设计模板免费
  • 网站接广告网络推广公司名字大全
  • 网站建设制作团队华为手机官网入口
  • 开发网站哪家好网站开发创建画布
  • 网站网上商城制作工作总结ppt模板免费下载 素材
  • 新潮远网站建设深圳公司网站制作企业
  • 宁波网站推广代运营关于做网站的问卷调查
  • 网站制作的书籍wordpress保护插件
  • 建设工程交易网站网页版 微信
  • 网站 备案 注销制作网站首先做的是
  • 哈尔滨网页设计模板网站怎么做自己的网站教程
  • 门户网站开发平台手机能制作软件吗
  • 做3个网站需要多大的服务器品牌网站建设堅持大蝌蚪
  • 河南襄县做网站的公司艺术家网站建设中企业网站建设的策划初期的一些误区
  • wordpress主题详细安装流程贵阳官网seo诊断
  • 网站设计中新闻版块怎么做有限责任公司的优缺点