小甲鱼 发表于 2024-2-5 06:11:54

希尔伯特曲线(Hilbert curve)

希尔伯特曲线(Hilbert curve)

希尔伯特曲线(Hilbert curve),又称希尔伯特空间填充曲线,是由德国数学家大卫·希尔伯特(David Hilbert)在 1891 年提出的一种连续分形曲线。

这种曲线的独特之处在于它可以无限地逼近、填满一个二维空间,因此它是一个典型的空间填充曲线。

因此,希尔伯特曲线广泛应用于计算机科学、物理学、遥感、生物信息学等领域,用于分形分析、地图制作、信号处理等方面。


下面,小甲鱼教大家怎么来画这个东西~

{:10_279:}

一阶希尔伯特曲线:



没错,就是正方形少了一个 “缺口”


二阶希尔伯特曲线:



这是怎么来的呢?

{:10_330:}

其实就是先将一阶曲线进行拷贝,然后底下两个分别向右和向左旋转 90 度角:



接着彼此连线,但下方同样还是要留一个 “缺口”:




三阶希尔伯特曲线:



同样的道理,是基于二阶的拷贝和旋转,然后连线:




四阶希尔伯特曲线:




五阶希尔伯特曲线:




六阶希尔伯特曲线:




七阶希尔伯特曲线:




动画演示

https://fishc.oss-cn-hangzhou.aliyuncs.com/Videos/Math/HilbertCurve.mp4


附带一个使用 Turtle 实现的动画代码:

**** Hidden Message *****

一点沙 发表于 2024-2-5 07:20:37

你用线再折一折还能折出正方体{:10_245:}
实际上线段是没有宽度的,它相当于一维。
所以一维的线无法填满二维中的任何已知结构体或三维的。
之所以看起来像被填满了是因为笔粗{:10_245:}{:10_245:}{:10_256:}

小甲鱼 发表于 2024-2-5 14:26:20

一点沙 发表于 2024-2-5 07:20
你用线再折一折还能折出正方体
实际上线段是没有宽度的,它相当于一维。
所以一维的线无法填满 ...

并不是用一维的线段去填充二维,希尔伯特曲线是一种分形几何形状,具体来说是一种空间填充曲线,跟跨维度概念是无关系的。

学习编程中的Ben 发表于 2024-2-5 14:59:49

长知识了

一点沙 发表于 2024-2-5 20:58:15

小甲鱼 发表于 2024-2-5 14:26
并不是用一维的线段去填充二维,希尔伯特曲线是一种分形几何形状,具体来说是一种空间填充曲线,跟跨维度 ...

哦{:10_324:}

一点沙 发表于 2024-2-6 07:53:13

纠错啦{:10_256:}{:10_256:}
是希尔伯特折线,因为并没有出现曲线{:10_266:}

tommyyu 发表于 2024-2-6 14:02:48

一点沙 发表于 2024-2-6 07:53
纠错啦
是希尔伯特折线,因为并没有出现曲线

可是它的译名好像就是这个“希尔伯特曲线”

猛学Python 发表于 2024-2-6 14:14:57

123

alimamababa123 发表于 2024-2-6 21:49:57

长见识了

1Asdusdhjssd 发表于 2024-2-7 22:19:49

学习

小甲鱼的二师兄 发表于 2024-2-8 00:49:02

{:10_267:} 学会了!

小甲鱼的二师兄 发表于 2024-2-8 02:03:53

一点沙 发表于 2024-2-6 07:53
纠错啦
是希尔伯特折线,因为并没有出现曲线

首先,curve 翻译过来就是 “曲线” 的意思~

你的问题我能理解,尽管希尔伯特曲线在每一次迭代中看起来像是折线,由于它的极限形态是无限细分后的结果,我们可以认为它在理论上是连续的,并且可以无限接近任意一个区域内的点。因此,从数学的角度来说,将其称为“曲线”是合适的,因为“曲线”一词在数学中通常指的是一条连续的路径。

此外,“折线”一般指的是由有限多个线段首尾相连组成的线,这些线段通常是直的,而希尔伯特曲线虽然起始阶段看似由直线段组成,但在极限状态下,它不再是由明显的直线段组成,而是形成了一条完全连续的曲线,它的每一部分都无限地细小,以至于不再是直线。

冯雨生 发表于 2024-2-9 16:23:05

太酷了

三体人的智子 发表于 2024-2-23 07:41:48

tifosi 发表于 2024-2-23 20:05:24

知识+1

stumblemodel 发表于 2024-4-20 20:20:55

{:10_256:}

额...... 发表于 2024-7-1 16:28:45

涨知识了
页: [1]
查看完整版本: 希尔伯特曲线(Hilbert curve)