nf使用 Python 的 turtle 模組畫圖
阿新 • • 發佈:2019-01-03
Python 內建了一個名叫 turtle 的模組。我們可以通過這個模組,來畫出各種各樣的圖片。
在這篇文章裡面,我會介紹 5 種通過遞迴方式畫出的圖案,希望大家喜歡!
————————————————————————
第一個是
科赫曲線(Courbe de Koch/Koch curve)
首先看看效果圖:
(圖樣不按比例)
我們可以看到科赫曲線是慢慢細分,最終獲得比較複雜的圖案。
那麼在 Python 裡面我們應該怎麼用 turtle 畫出呢?
(上述程式碼在 Python 3.4.0 測試通過)from turtle import * def draw1(n,l): if(n ==0): forward(l) else: for angle in (60,-120,60,0): draw1(n-1,l/3) left(angle)
# @param n: 科赫曲線細分度
# @param l : 科赫曲線每段長度
# 參考 n / l : draw1(3, 300)
其中,n 是科赫曲線的「細分度」。
當 n = 0 的時候,科赫曲線是一條直線,
當 n = 1 的時候,科赫曲線會在中間 1/3 的位置畫出一個邊長為 l/3 等邊三角形,
……
由此可以推出,當 n→∞的時候,科赫曲線的邊→∞.
————————————————————————
第二個是
科赫雪花(flocon de Koch / Koch snowflake)
繼續我們先來看效果圖:以上就是科赫雪花的圖樣(圖樣不按比例)
def draw1(n,l):#本函式需要上文提到的draw0(n,l)
if(n ==0):
forward(l)
else:
for angle in (60,-120,60,0):
draw1(n-1,l/3)
left(angle)
(上述程式碼在 Python 3.4.0 測試通過)# @param n: 科赫雪花細分度 # @param l : 科赫雪花每段長度 在這裡我們可以很簡單地看出,其實科赫雪花就是科赫曲線以 60° 組合而成的圖案。 很簡單吧,下面就將科赫曲線和科赫雪花改一下,以產生新的圖案。