1. 程式人生 > 實用技巧 >分形幾何中科赫雪花的繪製

分形幾何中科赫雪花的繪製

目錄

分形幾何在自然界中廣泛存在(康托爾集、謝爾濱斯基三角形、門格海綿、龍形曲線、科赫曲線...),實際上分形幾何是一種迭代的幾何圖形。本文主要討論科赫曲線。

科赫曲線的繪製:##

import turtle
def koch(size,n):#繪製科赫曲線含倆個引數,大小和階數
    if n == 0:#基線情況
        turtle.fd(size)#0階,即只有一條線段,直走
    else:
        for angle in [0,60,-120,60]:#當角度為0,60,120,60時
            turtle.left(angle)#轉動角度
            koch(size/3,n-1)#在曲線1/3處遞迴呼叫科赫曲線
def main():
    turtle.setup(800,400)
    turtle.penup()
    turtle.goto(-300,-50)
    turtle.pendown()
    turtle.pensize(2)
    koch(600,3)#假設為三階
    turtle.hideturtle()
main()
![](/1905400150盧霜/01.png)
## 基於科赫曲線繪製科赫雪花:##
```python
import turtle
def koch(size,n):#繪製科赫曲線含倆個引數,大小和階數
    if n == 0:#基線情況
        turtle.fd(size)#0階,即只有一條線段,直走
    else:
        for angle in [0,60,-120,60]:#當角度為0,60,120,60時
            turtle.left(angle)#轉動角度
            koch(size/3,n-1)#在曲線1/3處遞迴呼叫科赫曲線
def main():
    turtle.setup(600,600)
    turtle.penup()
    turtle.goto(-200,100)
    turtle.pendown()
    turtle.pensize(2)
    level=3#假設為三階
    koch(400,level)
    turtle.right(120)
    koch(400,level)
    turtle.right(120)
    koch(400,level)#三段科赫曲線轉動連線繪製
    turtle.hideturtle()
main()
![](/1905400150盧霜/03.png)