034 實例8-科赫雪花小包裹


一、"科赫雪花小包裹"問題分析

1.1 科赫雪花

高大上的分形幾何

  • 分形幾何是一種迭代的幾何圖形,廣泛存在於自然界中

034-實例8-科赫雪花小包裹-01.jpg?x-oss-process=style/watermark

科赫曲線,也叫雪花曲線

034-實例8-科赫雪花小包裹-02.jpg?x-oss-process=style/watermark

1.2 用Python繪制科赫曲線

034-實例8-科赫雪花小包裹-03.jpg?x-oss-process=style/watermark

二、"科赫雪花小包裹"實例講解(上)

2.1 科赫曲線的繪制

034-實例8-科赫雪花小包裹-04.jpg?x-oss-process=style/watermark

  • 遞歸思想:函數+分支
  • 遞歸鏈條:線段的組合
  • 遞歸基例:初識線段
# KochDrawV1.py

import turtle


def koch(size, n):
    if n == 0:
        turtle.fd(size)
    else:
        for angle in [0, 60, -120, 60]:
            turtle.left(angle)
            koch(size / 3, n - 1)


def main():
    turtle.setup(800, 400)
    turtle.penup()
    turtle.goto(-300, -50)
    turtle.pendown()
    turtle.pensize(2)
    koch(600, 3)  # 3階科赫曲線,階數
    turtle.hideturtle()


main()

2.2 科赫雪花的繪制

# KochDrawV1.py

import turtle


def koch(size, n):
    if n == 0:
        turtle.fd(size)
    else:
        for angle in [0, 60, -120, 60]:
            turtle.left(angle)
            koch(size / 3, n - 1)


def main():
    turtle.setup(600,600) 
    urtle.penup() 
    turtle.goto(-200, 100) 
    turtle.pendown()
    turtle.pensize(2)
    level = 3  # 3階科赫雪花,階數
    koch(400, level)
    turtle.right(120) 
    koch(400, level)
    turtle.right(120)
    koch(400, level)
    turtle.hideturtle()

main()

034-實例8-科赫雪花小包裹-05.jpg?x-oss-process=style/watermark

三、"科赫雪花小包裹"實例講解(下)

打包才能上路…

pyinstaller –i curve.ico –F KochDrawV2.py

034-實例8-科赫雪花小包裹-06.jpg?x-oss-process=style/watermark

  • 對編寫后的科赫雪花代碼進行打包處理

034-實例8-科赫雪花小包裹-07.jpg?x-oss-process=style/watermark

四、"科赫雪花小包裹"舉一反三

4.1 繪制條件的擴展

  • 修改分形幾何繪制階數
  • 修改科赫曲線的基本定義及旋轉角度
  • 修改繪制科赫雪花的基礎框架圖形

034-實例8-科赫雪花小包裹-08.jpg?x-oss-process=style/watermark

4.2 分形幾何千千萬

  • 康托爾集、謝爾賓斯基三角形、門格海綿…
  • 龍形曲線、空間填充曲線、科赫曲線…
  • 函數遞歸的深入應用…


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM