Z Order Curve java实现

时间:2012-08-08 18:42:56

标签: java indexing

我能指出Z-order曲线实现的Java代码吗? 我有x,y浮点坐标,我想要它们的单维表示,我知道可以使用Z阶曲线变换。 我无法为此函数找到Java实现或C代码。

我将非常感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

根据{{​​3}},

GridKit具有Z-Order实施。如果您也接受c ++,那么点云上的最近邻搜索也会koders

答案 1 :(得分:0)

我自己写的。

首先使用Math.getExponent计算两个指数并取maximum这些指数,从浮点数转换为整数。然后你可以scale这些数字,使得这些数字中较大的数字在小数点前有32位。然后将结果舍入(或截断)为int。然后你必须使用比特交错将这两个整数组合成一个长整数,最后你可以使用存储的指数再次缩放结果。

如果您的输入仅限于例如[0,1]范围,你可以简单地使用基于整数的定点算术而不是这种手动重新缩放。

为了进行比特交织,我使用了一个查找映射,例如,采用8位块并计算相应的16位交错块。这样你就不必进行太多的位移操作。