我能指出Z-order曲线实现的Java代码吗? 我有x,y浮点坐标,我想要它们的单维表示,我知道可以使用Z阶曲线变换。 我无法为此函数找到Java实现或C代码。
我将非常感谢您的帮助!
答案 0 :(得分:1)
答案 1 :(得分:0)
我自己写的。
首先使用Math.getExponent
计算两个指数并取maximum这些指数,从浮点数转换为整数。然后你可以scale这些数字,使得这些数字中较大的数字在小数点前有32位。然后将结果舍入(或截断)为int。然后你必须使用比特交错将这两个整数组合成一个长整数,最后你可以使用存储的指数再次缩放结果。
如果您的输入仅限于例如[0,1]范围,你可以简单地使用基于整数的定点算术而不是这种手动重新缩放。
为了进行比特交织,我使用了一个查找映射,例如,采用8位块并计算相应的16位交错块。这样你就不必进行太多的位移操作。