问题标签 [z-order-curve]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
7419 浏览

c++ - 我怎样才能有效地洗牌?

我需要对 16 位无符号整数进行洗牌,使偶数索引位于低字节,奇数索引位于高字节。

我的代码现在看起来像这样:

我想知道是否有比简单地提取和移动每个位更优雅的解决方案?

0 投票
1 回答
2002 浏览

c++ - 带有浮点数的二维点的莫顿指数

我有一个看起来像这样的 2D 点:

我知道如何处理整数,但我需要使用浮点数。我还想避免针对任何特定的网格大小进行缩放。

维基百科上的相关页面:

莫顿指数,或 Z 阶曲线

0 投票
1 回答
1595 浏览

latitude-longitude - 如何将纬度和经度转换为莫顿码(z 阶曲线)

我在互联网上搜索,但仅找到有关如何将纬度和经度转换为莫顿码(z 阶曲线)的一些信息。从链接中,我知道如何将两个 int 转换为 Morton Code。但是,如果我有纬度或经度等浮点值,我应该如何将浮点值转换为 int?然后我可以将 int 转换为 Morton 代码。例如,c# 代码:

在这里,我不知道我应该选择哪个。请你帮助我好吗?我没有找到像“BitConverter.FloatToInt32Bits”这样的方法。到目前为止,我不知道原因。

Upate 1:我在这里找到了答案,但我不太明白答案。

0 投票
2 回答
5429 浏览

z-order-curve - 如何在范围搜索中使用莫顿阶(z阶曲线)?

如何在范围搜索中使用 Morton Order?来自wiki,在“使用一维数据结构进行范围搜索”段落中,

它说

“被查询的范围(x = 2, ..., 3, y = 2, ..., 6)用虚线矩形表示。它的最高Z值(MAX)是45。在这个例子中,值在 Z 值递增方向搜索数据结构时遇到 F = 19。......BIGMIN(示例中为 36)......仅在 BIGMIN 和 MAX 之间的区间内搜索......"

我的问题是:

1)为什么F是19?为什么F不应该是16?

2) 如何获得BIGMIN

3) 是否有任何网络博客演示如何进行范围搜索?

0 投票
3 回答
4400 浏览

c - 2D morton 代码编码/解码 64 位

如何将给定 [x, y] 的 morton 代码(z 顺序)编码/解码为 32 位无符号整数,生成 64 位 morton 代码,反之亦然?我确实有 xy2d 和 d2xy 但仅适用于 16 位宽的坐标,产生 32 位莫顿数。在网上搜了很多,但没有找到。请帮忙。

0 投票
0 回答
39 浏览

c - Bit Twiddlings 64bits 的 2D 空间填充曲线

是否有任何空间填充曲线可以用 Bit Twiddling 计算(索引),不同于中性(简单移位)、Morton(二进制幻数)和 Hilbert(来自 Morton)?任何带有 encode(xy2d)/decode(d2xy) 的例子?

0 投票
1 回答
369 浏览

c - 2d Morton 码 64bits 解码功能

第一个函数将 [x, y] 编码为 64 位宽的莫顿代码,其中 x 和 y 是使用二进制幻数交错位的 32 位宽整数。

什么是反向功能?

0 投票
1 回答
461 浏览

c - 2D Morton 解码功能 64bits

第一个函数将 [x, y] 编码为 64 位宽的莫顿代码,其中 x 和 y 是使用二进制幻数交错位的 32 位宽整数。

什么是反向功能?

0 投票
0 回答
444 浏览

c - 3D 中的 Morton 排序使用 unit64_t 作为输入

我正在尝试使用 Morton 代码为给定的 (x,y,z) 生成唯一编码,其中 x,y,z 是双精度浮点数。我假设我可以使用类型转换将浮点数转换为整数并对这些整数运行 Morton 排序。例如考虑以下C++代码。(我现在不知道如何做同样的事情C

扩孔也是如此x,y。一旦我有了“重新解释”的值,我想将它们用作 Morton 编码的子程序。

我检查了上面的类型转换,它反向工作正常

我设法找到了一些 Morton 编码的代码,甚至在这个论坛上找到了一些代码,但没有一个用于int64_t3D。因此,我将需要论坛上专家的帮助,了解如何对int64_t整数进行编码和解码。

我设法对以下代码进行了逆向工程。不幸的是,有一些错误,当我运行解码部分时,我没有得到正确的数字。我将不胜感激任何帮助找出问题所在。

2D morton 代码编码/解码 64 位

我这样做是因为我不想将坐标存储为 3D 点 (x,y,z),而是存储为单个长整数并在需要时对其进行解码。通过这样做,我会将坐标存储数组的大小减小 3 倍。

0 投票
1 回答
123 浏览

arrays - 莫顿编码 Z 索引空间使用

我有点困惑,因为我测试了几种算法来计算 z 索引,对于 (8, 8, 8) 我得到 3584,对于 (7, 7, 7) 我得到 511,这是正确的。问题是 8*8*8 = 512,但 z-index 是 3584。这意味着如果我使用一维数组按 z-index 存储东西,我不会使用更多空间并且会有空阵列中的插槽?类似地,7*7*7 = 343,小于 511。如果您在维基百科页面上查看 z-indexing/Morton 编码,您会发现一个二维示例,它是 8*8,x 和 y 的索引从 0到 7。但是,最大的 z-index 是 111111,即 63,从 0 开始编号时正好是第 64 个元素,因此它不会使用超过存储 64 个元素所需的空间。这里有什么问题吗?

谢谢