返回列表 回复 发帖

希尔伯特曲线

学习方老师[希尔伯特曲线]制作详解,发现可以用一次迭代简化制作过程,在这我也学着制作一个制作详解,可能还可以进一步简化。
虽然曲线制作出来了,但我仍然不明机理,搞不清gsp的多重迭代。

希尔伯特曲线制作详解(ChangXde).gsp (23.62 KB)

14# 增加希尔伯特曲线扫描版

61# 增加希尔伯特曲线的另一种扫描方法
柳老师好!
近一段时间有点紧,没空思考画板,可我还是时刻关注论坛的动态。
1.JPG
2.JPG
3.JPG
三种皮亚诺希尔伯特曲线.gsp (17.96 KB)
输入文字—选中—用插入连接 4.JPG —输入或粘贴链接地址,或直接用下面形式:【url=http://www.inrm3d.cn/viewthread.php?tid=4370&extra=page%3D2][希尔伯特曲线]制作详解[/url】
简单连续龙曲线一次迭代制作确实不简单,原像规律性不强是难点。
long.gif

连续龙曲线.gsp (7.31 KB)

希尔伯特曲线 .gsp (4.21 KB)
这个封闭希尔伯特曲线如何迭代完成
http://www.inrm3d.cn/viewthread.php?tid=4412&extra=page%3D5 1.JPG
2.JPG
3.JPG
4.JPG
HilbertCurve(BOTH) {
; By Samuel Monnier, 2.9.00 简化

init:
      z = 0
  int i = 0
  int ttype = 0
  float d = -1
loop:

final:

  z = #z/2
  z = abs(z) - (.5,.5)

  while i < @niter
    i = i + 1
    if ttype == 0
      if real(z) < 0 && imag(z) < 0
        z = 2*z + (.5,.5)
        z = -conj(z)
      elseif real(z) > 0 && imag(z) < 0
        z = 2*z + (-.5,.5)
        z = 1i*z
      elseif real(z) > 0 && imag(z) > 0
        z = 2*z + (-.5,-.5)
        z = 1i*conj(z)
      elseif real(z) < 0 && imag(z) > 0
        z = 2*z + (.5,-.5)
        ttype = 1
      endif
    else
      if real(z) < 0 && imag(z) < 0
        z = 2*z + (.5,.5)
        z = 1i*z
        ttype = 0
      elseif real(z) > 0 && imag(z) < 0
        z = 2*z + (-.5,.5)
        z = -1i*conj(z)
        ttype = 0
      elseif real(z) > 0 && imag(z) > 0
        z = 2*z + (-.5,-.5)
        ttype = 0
      elseif real(z) < 0 && imag(z) > 0
        z = 2*z + (.5,-.5)
        z = -conj(z)
        ttype = 0
      endif
    endif
  endwhile


    z = z + (1,1)
    if ttype == 0
      if abs(real(z))-1 > d
        d = abs(real(z))-1
      endif
     if abs(imag(z))-1 > d
        d = abs(imag(z))-1
      endif
    else
      d = imag(z)-1
    endif


  #index = abs(d)^@power

default:
  title = "Hilbert Curve"

  param power
    caption = "Thickness"
    default = .1
  endparam

  param niter
    caption = "Number of Iterations"
    default = 3
  endparam
}
还有这个
Peano.jpg
未命名.JPG
以动态的初始元为陷阱制作了这个希尔伯特曲线的扫描算法
3.JPG
希尔伯特曲线扫描版(ChangXde).gsp (15.03 KB)
16# xuefeiyang
增加这个曲线
四种皮亚诺希尔伯特曲线.gsp (25.38 KB)

可以计算一下,这类“3n ” 的曲线共有 2^9 (512) 种,去掉对称情况应有 256 种。
返回列表