希伯特曲线具体干什么的,就不多说了,直接上代码!

class Hilbert:# n 行列数def __init__(self, n ):self.n = ndef rot(self, xy, rx, ry):n = self.nif ry == 0:if rx == 1:xy[0] = n - 1 - xy[0]xy[1] = n - 1 - xy[1]temp = xy[0]xy[0] = xy[1]xy[1] = tempreturndef he_to_xy(self, d, xy):  # 返回hilbert数值对应的二维坐标n = self.nt = dxy[0] = xy[1] = 0s = 1while s < n:rx = int(1 & int(t / 2))ry = int(1 & (int(t) ^ rx))self.rot(xy, rx, ry)xy[0] += s * rxxy[1] += s * ryt /= 4s *= 2return xy[1], xy[0]def xy_to_he(self, xy):  # 返回二维坐标h对应的hilbert数值n = self.nd = 0s = n / 2while s > 0:if (int(xy[0]) & int(s)) > 0:rx = 1else:rx = 0if (int(xy[1]) & int(s)) > 0:ry = 1else:ry = 0d += s * s * ((3 * rx) ^ ry)self.rot(xy, rx, ry)s /= 2return d
#=========================== 测试 8x8 的 生成结果  ============================
n = 8
xy = [0, 0]
hi = Hilbert(n)
for i in range(0,n):for j in range(0,n):xy[0] = jxy[1] = iprint("%4d"% int(hi.xy2d(xy)), end='')print()
#=========================== 测试 相互转换 ============================
xy1 = [1, 2] # i j 相反
print(hi.xy_to_he(xy1))
print(hi. he_to_xy(4, xy))

结果

   0   3   4   5  58  59  60  631   2   7   6  57  56  61  6214  13   8   9  54  55  50  4915  12  11  10  53  52  51  4816  17  30  31  32  33  46  4719  18  29  28  35  34  45  4420  23  24  27  36  39  40  4321  22  25  26  37  38  41  42
 13.0
(0, 2)

希伯特数值与二维坐标的相互转换(python)相关推荐

  1. python 可视化 二维坐标标注等等

    python 可视化 二维坐标标注等等 - 蔡军帅 - 博客园https://www.cnblogs.com/caiyishuai/p/9607250.html 大佬的分享,在这里方便自己总结学习,因 ...

  2. python函数图像平移_旋转、缩放和平移二维坐标?

    下面是一个关于矩阵的解决方案(这对于这种计算是有意义的,最后,二维坐标是一列的矩阵!)我是说 缩放非常简单,只需将矩阵的每个元素乘以缩放因子即可:scaled = copy.deepcopy(orig ...

  3. python画二维散点图-基于python 二维数组及画图的实例详解

    1.二维数组取值 注:不管是二维数组,还是一维数组,数组里的数据类型要一模一样,即若是数值型,全为数值型 #二维数组 import numpy as np list1=[[1.73,1.68,1.71 ...

  4. python键盘输入数组_python 二维数组切割Python读取键盘输入的2种方法

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...

  5. java坐标移动题目case_用java怎样编写一个二维坐标平移程序

    展开全部 java编写二维坐标平移程序,主要是e69da5e887aa62616964757a686964616f31333337626231通过类继承Point2D,使用里面的方法来平移,如下代码: ...

  6. java 课后习题 二维坐标距离 三角形判断等

    知识点: 1.三角形的判断公式 两边之和大于第三边 2.二维坐标两点距离公式 根号[(x1-x2)平方+(y1-y2)平方] 3.JAVA Math.pow(变量,指数); 的运用 4.JAVA Ma ...

  7. 【JAVA 第四章 流程控制语句】课后习题 二维坐标距离 三角形判断等

    知识点: 1.三角形的判断公式 两边之和大于第三边 2.二维坐标两点距离公式 根号[(x1-x2)平方+(y1-y2)平方] 3.JAVA Math.pow(变量,指数); 的运用 4.JAVA Ma ...

  8. 创建二维数组 以及 python中[0 ]* n与[0 for _ in range(n)]的区别与联系

    一.浅拷贝于深拷贝 关于浅拷贝于深拷贝:Python 的深拷贝和浅拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy) ...

  9. C#版二维坐标点按行排序

    版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/mr_frank_xie/article/details/84977398 二维坐标点按行排序的算法思路 ...

最新文章

  1. EXT调用ASP.NET AJAX WebService
  2. [Xcode 实际操作]六、媒体与动画-(3)使用CoreImage框架设置图片的单色效果
  3. 网络登录_发布猫系统登录免费网络推广-绥芬河推广资讯
  4. ----uni-app之解决HBuilderX安装less成功运行时提示未安装----
  5. Mac双系统中删除Windows系统教程
  6. 【cGAN】conditional生成对抗网络--有代码
  7. JavaScript之DOM对象(Event事件)
  8. 单链表的合并算法_图解算法:单链表两两反转 | 眼睛会了手就会系列
  9. 从语音识别到语义识别还有多少路要走?
  10. MySQL Merge存储引擎
  11. svn管理ad元件库_AD元器件库服务器管理指南
  12. win10浏览器闪退_Win10专业版下Edge浏览器闪退的多种解决技巧
  13. HCSE设计知识点50个
  14. 身份证号码校验(前端,java)
  15. 参数检验和非参数检验的区别
  16. 三国之空城计游戏攻略
  17. 『实用教程』VSPD虚拟串口工具——从此告别硬件串口调试
  18. 2.5 知识点 pri文件有啥用
  19. 【Mac 环境配置】-- 配置JAVA环境
  20. 如何在Java中将GIF图像转换为PNG等图像格式?试试Aspose

热门文章

  1. 一个vue小demo购物车
  2. 未来搜索不需要打字 - 谷歌施密特
  3. 和男朋友在一起两年了 我确离不开他 我怎么办?
  4. 为什么把我当作世界上最穷的人?
  5. 孙正义的时间机器理论
  6. 做一切为了好玩的极客,TiDB Committer 王贺的心路历程
  7. 数制转换(看这一篇就够啦)
  8. mysql复合主键_mysql怎么添加复合主键?
  9. html中rgba灰色怎么写,rgba中的a是什么意思 CSS之RGBA颜色指南
  10. PTA 查找奥运五环色的位置