3个版本
0.1.2 | 2023年5月15日 |
---|---|
0.1.1 | 2023年5月13日 |
0.1.0 | 2023年5月13日 |
1209 在 数据结构 中
每月下载 37 次
12KB
160 行
Hilbert-Curve-Generator
一个工作中的希尔伯特空间填充曲线坐标生成器。可以使用Skilling变换方法生成2维或3维希尔伯特空间填充曲线的顶点的笛卡尔坐标。
项目结构
Hilbert-Curve
此模块包含生成2D和3D希尔伯特空间填充曲线顶点笛卡尔坐标的功能。
它还包含将输出顶点转换为不同格式的实用函数
- (x,y,z) 二进制
- (x,y,z) 十进制
BRGC
Brgc是二进制反射格雷码迭代器
此模块使用一种技术生成HSFC中每个顶点的笛卡尔坐标,该技术从使用二进制反射格雷码计数系统计数的第一个n个二进制数列表开始。
此模块公开的迭代器可用于生成任何大小的BRGC中的点,尽管对于生成正方形希尔伯特曲线和立方体希尔伯特立方体的典型目的,生成的点的数量通常是p^n,其中n是结果笛卡尔坐标的维度数(目前支持2D和3D),p是每个坐标的数据位(您的正方形/立方体的每边将有2^p个顶点)
Skilling_Transform
此模块包含应用Skilling变换到现有BRGC Vec的函数。
Skilling变换是一种生成希尔伯特曲线顶点笛卡尔坐标的算法,而不使用传统的递归方法。
由于算法不是立即清晰的,我在代码中优化了可读性和易于理解,因为实现这个算法有很多尝试和错误。如果我在这个项目上花费更多时间,我将尝试用位操作替换所有的字符串操作并比较速度差异。