希尔伯特曲线
geogebra吧
全部回复
仅看楼主
level 11
如上图,初看没头绪,它是一条折线,叫希尔伯特曲线,是通过分形所得:
q = 4 (整数滑动条,1--5,千万别弄大了)
l3 = {(-1, -1), (-1, 1), (1, 1), (1, -1)}
l7 = 迭代({逆序排列(位似(旋转(扁平列表(a), (-π) / 2), 0.5, (-2, -2))), 位似(扁平列表(a), 0.5, (-2, 2)), 位似(扁平列表(a), 0.5, (2, 2)), 逆序排列(位似(旋转(扁平列表(a), π / 2), 0.5, (2, -2)))}, a, {l3}, q - 1)
h = 折线(扁平列表(l7))
就上边几条命令就可以把它画出来,过程是这样的,初始图如下:
一次迭代图:
和初图相比,上图是经过初图四个点旋转位似得到的,共四个图形组成,左下角是原图缩小后顺时针旋转90度,构成的点反序排列,上边两图不旋转,右下反旋90度,点逆排,这样就构成了迭代的表达式了。
2021年05月29日 13点05分 1
level 11
电脑牛X的,可以做三维希尔伯特曲线,不过q值不要超过4,计算量太大:
l1 = {(-1, -1, -1), (1, -1, -1), (1, -1, 1), (-1, -1, 1), (-1, 1, 1), (1, 1, 1), (1, 1, -1), (-1, 1, -1)}
l2 = 2*l1
q = 3
l4 = {(z = y,z = x), (z + 2 = y + 2,z + 2 = x), (z = y + 2,z = x), (x = -z,x + 0z = -1), (x = -z,x + 0z = -1), (z = -y + 2,z = x), (z + 2 = -y + 2,z + 2 = x), (z = -y,z = x)}
l5 = {2π / 3, -2π / 3, -2π / 3, π, π, -2π / 3, -2π / 3, 2π / 3}
l6 = 迭代(映射(旋转(位似(扁平列表(a), 0.5, b), c, d), b, l2, c, l5, d, l4), a, {l1}, q - 1)
f = 折线(扁平列表(l6))
基本原理类似二维,但表述起来太复杂,就不讲了,有兴趣的可以慢慢研究。
2021年05月29日 13点05分 2
1