1. 程式人生 > 其它 >turtle繪製圖形--正方形、正六邊形、疊邊形

turtle繪製圖形--正方形、正六邊形、疊邊形

技術標籤:pythonmooc練習python幾何學

1、正方形的繪製
正方形如下圖所示在這裡插入圖片描述
思路分析:首先得知道正方形的特點,畫一個正方形可從起點繞一圈回到起點,外角和為360°;有4條邊,那麼外角為360°÷4=90°。所以每次轉角都為90°。知道了正方形的特性,就能實現程式碼了,如下:

# turtle正方形繪製
import turtle as t  # 用別名t代替turtle庫的使用
t.pensize(5)        # 畫筆大小設定為5畫素
for i in range(4):  # 有4條邊,所以我們要畫四次,用迴圈實現
    t.
fd(200) # 每次畫200畫素的長度 t.left(90) # 在每次畫完200畫素的長度後,轉90° t.done() # 停止畫筆,結束繪畫

2、正六邊形的繪製
正六邊形如下圖所示
在這裡插入圖片描述思路分析:先得知道正六邊形的特點,外角和為360°,有六條邊,所以外角是360°÷6=60°,所以每次轉角為60°。知道了正六邊形的特點,那麼用程式碼實現起來就很容易了,如下:

# turtle六邊形繪製
import turtle as t      # 用別名t代替turtle庫的使用
t.pencolor("white"
) # 畫筆顏色先調為白色 t.goto(0, -200) # 小烏龜先移動到座標(0,-200)處 t.pensize(5) # 畫筆大小設定為5畫素 t.pencolor("black") # 畫筆顏色調為黑色色 for i in range(6): # 有6條邊,所以我們要畫6次,用迴圈實現 t.fd(200) # 每次畫200畫素的長度 t.left(60) # 在每次畫完200畫素的長度後,轉90° t.done() # 停止畫筆,結束繪畫

3、疊邊形的繪製
疊邊形如下圖所示
題目要求:使用turtle庫,繪製一個疊邊形,其中,疊邊形內角為100度。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬在這裡插入圖片描述 思路分析:(分析一,順承正方形與正六邊形解題思路)小烏龜從起點開始繪製,回到起點,所以得到圖形的外角和為360°的整數倍。又因為疊邊形有9條邊,故外角為360°n÷9=40°×n,觀察可知外角比40°大,比直角90°小,故外角為80°。
(分析二,依據題目意思分析)根據題目意思,疊邊形的內角為100°,我們預設為這是個正疊邊形,即每個內角都是100°,那麼每個外角就都是80°了,那麼每次的轉角就是80°。數一數,一共有九條邊。所以我們每次讓小烏龜前進200畫素,之後轉90°,迴圈9次就能畫出疊邊形了。
分析清楚,那麼程式碼也能很容易實現出來,如下:

# turtle疊邊形繪製
import turtle as t      # 用別名t代替turtle庫的使用
t.pencolor("white")     # 畫筆顏色先調為白色
t.goto(0, -200)         # 小烏龜先移動到座標(0,-200)處
t.pencolor("black")     # 畫筆顏色調為黑色
t.pensize(5)            # 畫筆大小設定為5畫素
for i in range(9):      # 有9條邊,所以要畫9次,用迴圈實現
    t.fd(200)           # 每次畫200畫素的長度
    t.left(80)          # 在每次畫完200畫素的長度後,轉80°
t.done()                # 停止畫筆,結束繪畫

畫完了,觀察執行的程式,一共9條邊,2圈,每次左轉角度為80°,
改變下線條的寬度,看的更直觀些。

# turtle疊邊形繪製
import turtle as t      # 用別名t代替turtle庫的使用
t.pencolor("white")     # 畫筆顏色先調為白色
t.goto(0, -200)         # 小烏龜先移動到座標(0,-200)處
t.pencolor("black")     # 畫筆顏色調為黑色
t.pensize(5)            # 畫筆大小設定為5畫素
for i in range(4):      # 有9條邊,先畫前4條邊,用迴圈實現
    t.fd(200)           # 每次畫200畫素的長度
    t.left(80)          # 在每次畫完200畫素的長度後,轉80°
t.pencolor("green")     # 畫筆顏色調為綠色
t.pensize(2)            # 畫筆大小設定為2畫素
for i in range(5):      # 把後面5條邊畫完,用迴圈實現
    t.fd(200)           # 每次畫200畫素的長度
    t.left(80)          # 在每次畫完200畫素的長度後,轉80°
t.done()                # 停止畫筆,結束繪畫

在這裡插入圖片描述