gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 09:03:21 24 4
gpt4 key购买 nike

虽然将 3D 坐标转换为 z 顺序曲线相对简单 ( Efficient z-order transformation in Fortran ),但我很难理解使用不同空间填充曲线(例如 Peano 或 Hilbert)的数学原理。任何关于执行转换的实际代码如何看起来的提示将不胜感激。目标是拥有一个子例程,该子例程将 xyz 坐标作为输入,并进行必要的归一化,并返回空间填充曲线的索引。

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

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

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

最佳答案

希尔伯特曲线的工作原理是在每一步使用相同的基本形状递归地划分立方体(对于 3D),通过旋转曲线使子立方体的导出点与下一个立方体的入口点相匹配。

技术报告Compact Hilbert Indices是一个很棒的资源。作者:C.汉密尔顿。报告还介绍了非三次系统的紧凑希尔伯特指数。

当我认真思考这个问题时,我在 2015 年写了一篇博文:Understanding the Hilbert curve包含希尔伯特索引的示例 Python 代码以及希尔伯特“子立方体”旋转的说明。作为我编写的基于粒子的分子动力学模拟代码的一部分,我在 Fortran 中实现了紧凑的希尔伯特索引,请参阅 here .

我相信,详细地重新讨论细节“超出了SO答案的范围”,但上面的资源应该对您有很大帮助。

关于3d - 将 3D 坐标转换为空间填充曲线的索引(Peano、Hilbert...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48763826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com