📜  Python – 使用海龟的希尔伯特曲线

📅  最后修改于: 2022-05-13 01:55:01.687000             🧑  作者: Mango

Python – 使用海龟的希尔伯特曲线

分形是重复自身的曲线或图形。它包含一个递归模式,该模式重复到所需的嵌套级别。海龟图形在海龟模块中提供,用于在Python中绘制各种形状和图案。

希尔伯特曲线是由一系列沿不同方向排列和定向的 U 形曲线连接而成的曲线。这些 U 形曲线相隔一定的步长距离。

本节中使用的turtle方法如下:

  • forward() :用于将乌龟向前移动一个给定的距离在乌龟的方向。
  • backward() :用于将海龟沿海龟方向向后移动给定距离。
  • left() :用于将海龟向左旋转指定角度。
  • right() :用于将海龟向右旋转指定角度。
  • goto() :用于将海龟移动到指定的位置((x,y)坐标)。
  • penup() :用于指定在移动时不会进行绘图。
  • pendown() :用于指定将在移动时进行绘图。
  • done() :用于指定海龟工作完成。
希尔伯特曲线的代码如下:
from turtle import * 
  
def hilbert(level, angle, step):
  
    # Input Parameters are numeric
    # Return Value: None
    if level == 0:
        return
  
    right(angle)
    hilbert(level-1, -angle, step)
  
    forward(step)
    left(angle)
    hilbert(level-1, angle, step)
  
    forward(step)
    hilbert(level-1, angle, step)
  
    left(angle)
    forward(step)
    hilbert(level-1, -angle, step)
    right(angle)
  
def main():
    level = int(input())
    size = 200
    penup()
    goto(-size / 2.0, size / 2.0)
    pendown()
     
    # For positioning turtle
    hilbert(level, 90, size/(2**level-1))       
    done()
  
if __name__=='__main__':
    main()