Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Z阶曲线的java实现_Java_Indexing - Fatal编程技术网

Z阶曲线的java实现

Z阶曲线的java实现,java,indexing,Java,Indexing,有谁能告诉我Z阶曲线实现的Java代码吗? 我有x,y浮点坐标,我想要它们的一维表示,我知道使用Z阶曲线变换是可能的。 我找不到该函数的Java实现或C代码 我将非常感谢在这方面的任何帮助 具有根据的Z顺序实现。还有点云的最近邻搜索,如果你也接受C++。 < P>我自己写这个。< /P> 首先,通过计算两个指数并取其值,将浮点转换为整数。然后,您可以修改这些数字,以便这些数字中的较大者在小数点之前有32位。然后将结果四舍五入(或截断)为整数。然后必须使用位交错将这两个整数合并为一个长整数,最后可

有谁能告诉我Z阶曲线实现的Java代码吗? 我有x,y浮点坐标,我想要它们的一维表示,我知道使用Z阶曲线变换是可能的。 我找不到该函数的Java实现或C代码

我将非常感谢在这方面的任何帮助

具有根据的Z顺序实现。还有点云的最近邻搜索,如果你也接受C++。

< P>我自己写这个。< /P> 首先,通过计算两个指数并取其值,将浮点转换为整数。然后,您可以修改这些数字,以便这些数字中的较大者在小数点之前有32位。然后将结果四舍五入(或截断)为整数。然后必须使用位交错将这两个整数合并为一个长整数,最后可以使用存储的指数再次缩放结果

如果您的输入已经被限制在[0,1]范围内,您可以简单地使用基于整数的定点算法,而不是手动重新缩放


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

我假设OP不仅仅是希望对纬度/经度对进行编码(这是最简单的部分),而是希望在以后利用Tropf和Herzog BIGMIN*/*LITMAX范围切割技术进行高效查找。您能提供更多详细信息吗?我不明白。你能给出一个如何将浮点转换成整数的例子吗?我已经找到了两个整数如何使用位交错转换成一个长整数的结果。对于第三种情况,我知道如何进行位交错。