#希尔伯特曲线 #曲线 #希尔伯特 #分形

hilbert_2d

使用希尔伯特曲线及其近似值在1D和2D空间之间进行映射的函数

2个稳定版本

1.1.0 2023年1月6日
1.0.0 2020年9月1日

#353 in 数学

Download history 156/week @ 2024-03-13 201/week @ 2024-03-20 306/week @ 2024-03-27 325/week @ 2024-04-03 201/week @ 2024-04-10 186/week @ 2024-04-17 176/week @ 2024-04-24 196/week @ 2024-05-01 139/week @ 2024-05-08 215/week @ 2024-05-15 178/week @ 2024-05-22 201/week @ 2024-05-29 196/week @ 2024-06-05 158/week @ 2024-06-12 289/week @ 2024-06-19 150/week @ 2024-06-26

830每月下载次数
6 个Crates中使用了(5个直接使用)

MIT/Apache

105KB
555

希尔伯特2D

Latest Version API Documentation rustc 1.46+

Rust函数,用于使用希尔伯特曲线及其近似值在1D和2D空间之间进行映射。

Examples

用法

将此添加到您的 Cargo.toml

[dependencies]
hilbert_2d = "1.1.0"

当处理图像和矩阵时,请使用 h2xy_discretexy2h_discrete 函数

use hilbert_2d::{h2xy_discrete, xy2h_discrete, Variant};

let (x, y) = h2xy_discrete(7, 2, Variant::Hilbert); // (1, 2)
let h = xy2h_discrete(2, 1, 2, Variant::Hilbert); // 13

在执行实值计算时,请使用连续函数

use hilbert_2d::{h2xy_continuous_f64, Variant};

// Approaches the bottom-left corner
let (x1, y1) = h2xy_continuous_f64(0.0, Variant::Hilbert); 
// Approaches the bottom-right corner
let (x2, y2) = h2xy_continuous_f64(1.0, Variant::Hilbert); 

希尔伯特曲线的一些图案变体也已实现

use hilbert_2d::{h2xy_continuous_f64, Variant};

// In the Liu L1 variant, both ends of the curve approach the center of the square
let (x1, y1) = h2xy_continuous_f64(0.0, Variant::Liu1); // (~0.5, ~0.5)
let (x2, y2) = h2xy_continuous_f64(1.0, Variant::Liu1); // (~0.5, ~0.5)

许可

根据以下任一项许可

任选其一。

贡献

除非您明确声明,否则任何根据Apache-2.0许可证定义故意提交以包含在您的工作中的贡献,均应按上述方式双许可,不附加任何额外条款或条件。

无运行时依赖