第17章 科赫雪花小包裹
阿新 • • 發佈:2018-08-11
enter display auto wid 技術 koch 分支 alt info
科赫雪花小包裹問題分析:
科赫曲線,也叫雪花曲線。
用python繪制科赫曲線
一條直線取1/3長的線段,把中間的1/3段去掉,然後在搭建成60°的三角狀,emmm,如下圖所示:
科赫雪花的繪制
遞歸思想:函數+分支
遞歸鏈條:線段的組合
遞歸基例:初識線段
1 #KochDrawV1.py 2 import turtle 3 def koch(size, n): 4 if n == 0: 5 turtle.fd(size) 6 else: 7 for angle in [0, 60, -120, 60]: 8 turtle.left(angle)9 koch(size/3, n-1) 10 def main(): 11 turtle.setup(800,400) 12 turtle.penup() 13 turtle.goto(-300, -50) 14 turtle.pendown() 15 turtle.pensize(2) 16 koch(600,3) # 0階科赫曲線長度,階數 17 turtle.hideturtle() 18 main()
效果如下圖所示:
完整的科赫雪花的繪制代碼:
1 #KochDrawV2.py 2 import turtle3 def koch(size, n): 4 if n == 0: 5 turtle.fd(size) 6 else: 7 for angle in [0, 60, -120, 60]: 8 turtle.left(angle) 9 koch(size/3, n-1) 10 def main(): 11 turtle.setup(600,600) 12 turtle.penup() 13 turtle.goto(-200, 100) 14 turtle.pendown() 15 turtle.pensize(2)16 level = 3 # 3階科赫雪花,階數 17 koch(400,level) 18 turtle.right(120) 19 koch(400,level) 20 turtle.right(120) 21 koch(400,level) 22 turtle.hideturtle() 23 main()
繪制結果如下圖:
第17章 科赫雪花小包裹