簡單應用-螺旋線
2024年10月22日大约 2 分鐘
學習內容:
- 理解 遞迴(recursion) 的概念。
- 使用 Python 的 Turtle 繪製圖形。
- 在遞迴過程中,根據條件控制遞迴的終止。
使用 Turtle 繪圖
Turtle 是 Python 的標準套件,因此不需要額外安裝。可以直接在本地或線上 Python 編譯環境中執行。
程式碼:
import turtle
# 初始化畫布
screen = turtle.Screen()
pen = turtle.Turtle()
def recursive_spiral(length, angle):
"""使用遞迴畫出螺旋圖"""
if length > 1: # 基礎條件:當長度小於等於 1 時停止
pen.forward(length) # 畫出目前的線段
pen.right(angle) # 旋轉一定的角度
recursive_spiral(length - 1, angle) # 呼叫自己
# 設定畫筆速度和顏色
pen.speed(10) # 調整畫筆速度(1-10,1 最慢,10 最快)
pen.color("blue")
# 呼叫遞迴函式繪圖
recursive_spiral(100, 30)
# 點擊視窗後關閉
screen.exitonclick()
程式碼解析:
import turtle
:導入 turtle 模組,這是 Python 提供的一個簡單易用的圖形繪製模組,適合用於教學和簡單的圖形程式設計。screen = turtle.Screen()
: 創建一個繪圖視窗(畫布),我們可以在這個視窗上繪製圖形。pen = turtle.Turtle()
: 創建一個畫筆對象,透過這個對象可以控制畫筆的移動、轉向、顏色等屬性。def recursive_spiral(length, angle):
定義了一個函數 recursive_spiral,接收兩個參數:- length:當前要繪製的線段長度。
- angle:每次旋轉的角度。
if length > 1:
遞迴終止條件:當線段長度小於等於 1 時,停止遞迴,防止無限遞迴導致程式崩潰。pen.forward(length)
: 讓畫筆向前移動 length 單位,繪製一條線段。pen.right(angle)
: 讓畫筆向右旋轉 angle 度。recursive_spiral(length - 1, angle)
: 呼叫自己(遞迴),但將線段長度減少 1 單位,這樣每次遞迴繪製的線段都會變短,形成螺旋效果。
執行結果:
練習
- 試著調整不同長度和角度參數畫圖。
- 試著在繪圖過程改變顏色。(提示:改變顏色可用
pen.color(COLOR)
, 其中 COLOR 可以是顏色名稱的字串(如 "orange")、RGB 值的元組(如 (255,0,0)),或十六進制色碼(如 "#FF5733"))。