问题标签 [space-filling-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 投票
2 回答
94 浏览

python - 从 Python 中的扁平索引重塑

我有一个大小为 M*N 的图像,其像素坐标已根据空间填充曲线展平为一维数组(即不是我可以使用重塑的经典光栅化)。

因此,我处理了我的一维数组(展平图像),然后我想将其重塑为 M*N 数组(初始大小)。

到目前为止,我已经使用 for 循环完成了此操作:

x 和 y 是根据我的路径扫描的 x 和 y 像素坐标。

但是,我想知道如何在独特的代码行中做到这一点。

0 投票
0 回答
608 浏览

hilbert-curve - 希尔伯特曲线:实现 N 维

希尔伯特曲线维基百科文章包含一些 C 代码,显示如何将坐标映射到曲线,但它仅适用于二维。我很难找到适用于 N 维的任何示例(曲线示例很多,但映射函数却没有)。有人有任何代码或算法的描述可以分享吗?

我目前在旋转功能上受阻。我可以猜到,但由于我找不到任何类型的论文或其他使用我能理解的语言的描述,所以我无法确定我最终会得到什么。

请注意,我希望看到像维基百科版本一样简单的东西。看来我要进行的突变也应该非常简单。我在将N 维值映射到希尔伯特曲线上的一个点上找到了 SO 帖子,但它是如此复杂,并且与我开始使用的设计相比如此陌生(尽管两者都是非递归的,所以看起来它们应该更相似)它在我看来完全不透明。

0 投票
1 回答
1132 浏览

c - 如何从双坐标计算希尔伯特指数?

我想将由两个双精度值 (x, y) 表示的坐标对转换为希尔伯特值。我找到了以下实现(来自此链接):

但是,这是将整数值作为输入。我的双重价值观将如何适应?

0 投票
2 回答
1995 浏览

r - Plotly 3D 填充线下

我想用 Plotly 为时间序列绘制一个 3D 线图,并在每条线下填充。我在这里有一个示例代码。

使用此代码,我可以生成此图

没有填充的 3d 线图

在此处输入图像描述

我已经尝试过surfaceaxis=0,1 或 2,但他们产生了错误的填充物。

3D-Plotly 填充错误

在此处输入图像描述

我想要的是填充 x 轴和线图之间的区域。

有一个带有其他值的示例 3D 图。

作为示例 3D-Plot 在曲线下填充另一个值

在此处输入图像描述

有人可以建议一种方法吗?先感谢您。

编辑:它必须用包“plotly”创建

0 投票
1 回答
341 浏览

java - 如何在 JFrame 中实现希尔伯特曲线

我正在尝试基于希尔伯特曲线制作一个项目。我能够在 Applet 中使用代码,但我需要它在 JFrame 中工作,因为我需要一次打开多个框架来展示我的项目。我在下面的小程序中有代码,但我不知道如何更改为 JFrame。

在小程序形式中,它就像下面的代码:

我试着自己把它放到 JFrame 中,但我做不到。JFrame 打开,但 HilbertCurve 没有启动。下面是我的代码,我没有更改 SimpleGraphics 类

}

0 投票
1 回答
1281 浏览

3d - 将 3D 坐标转换为空间填充曲线的索引(Peano、Hilbert...)

虽然将 3D 坐标转换为 z 阶曲线相对简单(Fortran 中的高效 z 阶转换),但我很难围绕使用不同空间填充曲线的数学问题,例如 Peano 或 Hilbert。任何有关如何进行转换的实际代码的提示都将不胜感激。目标是有一个子程序,它将 xyz 坐标作为输入,并进行必要的标准化,并返回空间填充曲线的索引。

子程序(x,y,z,space_filling_index)

与此相关:我读到有很多方法可以在 3D 空间中定义希尔伯特曲线,哪一种在局部性方面最好?如果有一个明确的答案...

该应用程序将重新排序笛卡尔计算网格中的单元格,目标是在单元格访问其相邻单元格时增加缓存命中。

0 投票
0 回答
38 浏览

tesselation - 六边形和三角形镶嵌的伪希尔伯特曲线等价物是什么?

三角形、正方形和六边形都可以用来填充表面(镶嵌)。

现在让我们假设表面有有限数量的瓷砖(三角形、正方形或六边形)

目标是定义一条接触每个图块的线,以便彼此靠近的点或线 (1D) 在表面 (2D) 上也彼此靠近。

基于正方形的镶嵌的解决方案是(伪)-希尔伯特曲线。下面是一个二阶伪希尔伯特曲线的例子。

在此处输入图像描述

在这个精彩的视频中解释

我想知道基于三角形或六边形的镶嵌的伪希尔伯特曲线的等价物(如果有的话)是什么。我正在寻找一个完整的镶嵌,所以没有像谢尔宾斯基三角形那样的洞。

我发现了这个很棒的资源

对于使用 Peano 曲线的三角形。

在此处输入图像描述

0 投票
0 回答
143 浏览

java - 通过迭代计算协调列表 (COO) 稀疏矩阵的希尔伯特曲线

我正在研究 PageRank 问题并有一个协调列表 (Coo) 矩阵。该矩阵有一个源和目标数组,如下所示。每个源点都指向目的地的同一位置

我正在尝试对边缘进行预处理,以给出像希尔伯特这样的空间填充曲线计算的顺序。在将 (x,y) 转换为 d 转换回 (x,y) 时,我遇到了一些麻烦。

当前代码:

代码结果

关于这段代码有什么问题的任何想法?我知道我对全局变量有点过火了

我从这里得到了代码

编辑

我刚刚了解到数组通过引用进入方法,可用于删除 java 中的全局变量。我仍然有相同的结果

0 投票
2 回答
646 浏览

database - 使用希尔伯特曲线指数进行范围搜索

我有一个基于这个算法的希尔伯特曲线指数。我取两到四个值(纬度、经度、unix 格式的时间和一个 id 代码)并创建一维希尔伯特曲线。

我正在寻找一种使用此数据创建边界框查询的方法(即“查找此矩形内的所有 ID)。

我正在寻找一种无需将一维希尔伯特码解码回其组成部分的方法。使用 Morton/Z 阶曲线似乎更容易做到这一点,但我想知道局部性保留。

我的问题是:如果我创建了一个 2d 希尔伯特曲线范围(即我将框的范围转换为希尔伯特曲线,因此 x1y1-> hilbert value1 和 x2y2-> hilbertvalue2)是否会相应的 2d hilbert 值的所有值都落在它们的范围内?

例如,如果我将 (1,2) 和 (20,30) 转换为 Hilbert 值,然后搜索 hilbertvalue1 和 hilbertvalue2 之间的所有值,我得到的所有值是否都在 (1,2) 和 (20, 30) 之内,还是我必须执行额外的转换?

当您有超过 2 个维度时,另一个问题是制作一个范围。我有能力进出希尔伯特曲线,但我怎样才能确保即使是 4d 值的纬度和经度也在同一个矩形/边界框中?

谢谢。

0 投票
0 回答
79 浏览

python - 交错浮点坐标没有错误

我想知道如何交错浮动坐标。这个网站描述了如何做交错部分,但它只适用于整数。

我尝试了以下方法:

纬度 = 5.01,液化天然气 = 6.01

新纬度 = (5.01+90) * 100

newLng = (6.01+180) * 100

但它似乎没有正确的位序列。有人知道将 lat 和 lng 表示为 32 位序列的更好方法吗?