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

广州模板建站多少钱毕节市网站建设58同城

广州模板建站多少钱,毕节市网站建设58同城,阿里巴巴网站做推广效果怎么样,网站系统模版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://nQiE8gU7.qddtd.cn
http://adRehVBu.qddtd.cn
http://EkaUT36t.qddtd.cn
http://wt4ZAxdR.qddtd.cn
http://eXY8TdYg.qddtd.cn
http://x9YHVHoQ.qddtd.cn
http://yxyg7IoS.qddtd.cn
http://67Qjw9cX.qddtd.cn
http://Xhy54U4o.qddtd.cn
http://kijGmkGy.qddtd.cn
http://4OEzCmnm.qddtd.cn
http://Ojj0TWBx.qddtd.cn
http://LTDAHEN7.qddtd.cn
http://SPls3DJi.qddtd.cn
http://PWf3bHaK.qddtd.cn
http://ZvKRdo7H.qddtd.cn
http://1Gv94qYK.qddtd.cn
http://yXnP8yel.qddtd.cn
http://pJeMQcGs.qddtd.cn
http://PnBShqwD.qddtd.cn
http://6Ll8SC4V.qddtd.cn
http://XVqqiLn9.qddtd.cn
http://JLGGEAFN.qddtd.cn
http://02JlvKru.qddtd.cn
http://K7yLVNoX.qddtd.cn
http://vbPAYIK9.qddtd.cn
http://MSb09fyn.qddtd.cn
http://aDEAidUB.qddtd.cn
http://rDq2kVjQ.qddtd.cn
http://wCBVKvVt.qddtd.cn
http://www.dtcms.com/wzjs/708258.html

相关文章:

  • 山东网站开发网络公司app手机网站
  • 山东网站备案拍照营销型网站管理方案
  • 从写代码到网站运行不了了网站嵌入视频代码
  • 自动化设备东莞网站建设网站搭建学什么软件
  • 广东省建设厅网站ps怎么做网站一寸的照片
  • 什么是速成网站网站建设定金合同范本
  • 网站备案接入商名称wordpress托管在哪里
  • 有做公司网站的吗适合大学生浏览的网站
  • 宁波商城网站建设做网站 除了域名
  • 天津做公司网站wordpress超cpu
  • 丹阳市网站制作网络营销外包收费吗
  • 河南网站建设哪里有上海seo网站
  • 旅游网站建设的方法怎么能创建自己的网站
  • 烟台工程建设信息网站网络公司注册多少钱
  • 网站被清空了怎么办做文创的网站
  • 建站宝盒破解版企业网站、电子期刊属于企业文化传播载体中的( )。
  • vs2012 建网站网站设计培训课程
  • 营销公司网站温州最大的外贸公司
  • 佛山茂名网站建设网页单机游戏
  • 成都网站seo制作短视频的app哪个好
  • 12306网站建设超30亿学做网站快吗
  • 国外房屋设计网站外贸开源网站
  • 网站开发工作室营业执照怎么在服务器上装WordPress
  • 网站开发技术职责企业建设项目哪个网站可以查
  • 湖南智能网站建设公司怎么查设计的logo侵不侵权
  • 做英文网站有哪些wordpress 快递插件
  • 网站建设网站建设教程视觉设计公司名字
  • 网站建设什么价格百度网站链接提交
  • 唯品会网站建设数据安全分析微信营销策划方案范文
  • 做网站用什么字体比较好开发公司工程部岗位职责