1. 程式人生 > >nf使用 Python 的 turtle 模組畫圖

nf使用 Python 的 turtle 模組畫圖

Python 內建了一個名叫 turtle 的模組。我們可以通過這個模組,來畫出各種各樣的圖片。

在這篇文章裡面,我會介紹 5 種通過遞迴方式畫出的圖案,希望大家喜歡!

————————————————————————

第一個是

科赫曲線Courbe de Koch/Koch curve

首先看看效果圖:


(圖樣不按比例)

我們可以看到科赫曲線是慢慢細分,最終獲得比較複雜的圖案。

那麼在 Python 裡面我們應該怎麼用 turtle 畫出呢?

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)
(上述程式碼在 Python 3.4.0 測試通過)

# @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° 組合而成的圖案。 很簡單吧,下面就將科赫曲線和科赫雪花改一下,以產生新的圖案。
TO BE CONTINUE...