Z 顺序曲线 Java 实现



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

我将非常感谢对此的任何帮助!!

根据koders,GridKit有一个Z-Order实现。如果你也接受 c++,还有 STANN 用于点云上的最近邻搜索。

我会自己写这个。

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

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

为了进行位交错,

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

最新更新