跳轉到

🔰 海龜範例 - 海龜與樹

執行截圖



階段1: 程式結構

🎦 範例影片

📄 Py4t程式碼

# 模組區 ----------
from 海龜模組 import *

# 全域變數 ----------

# 函式區 ----------

# 主程式 ----------


完成()




階段2: 單線遞迴

🎦 範例影片

📄 Py4t程式碼

# 模組區 ----------------
from 海龜模組 import *

# 全域變數 ----------------

# 函式區 ----------------
def 初始設定() :
    左轉(90)

def 遞迴() :
    if  > 5 :
        畫點(10, 'red')
        return

    向前(50)
    畫點(10, 'black')
    右轉(20)

    遞迴( + 1)

    左轉(20)
    向後(50)

# 主程式 ----------------
初始設定()
遞迴(1)
完成()




階段3: 碎形樹

🎦 範例影片

📄 Py4t程式碼

# 模組區 ----------------
from 海龜模組 import *

# 全域變數 ----------------
最大層數 = 5
轉角 = 20
開始長度 = 100
長縮減率 = 0.7

# 函式區 ----------------
def 初始設定() :
    左轉(90)
    速度('fastest')   

def 遞迴(, ) :
    if  > 最大層數 :
        畫點(10, 'red')
        return

    向前()
    畫點(10, 'black')

    右轉(轉角)
    遞迴( + 1,  * 長縮減率)

    左轉(轉角 * 2)
    遞迴( + 1,  * 長縮減率)

    右轉(轉角)
    向後()

# 主程式 ----------------
初始設定()
遞迴(1, 開始長度)
完成()




階段4: 碎形動畫

🎦 範例影片

📄 Py4t程式碼

# 模組區 ----------------
from 海龜模組 import *

# 全域變數 ----------------
最大層數 = 5
轉角 = 20
開始長度 = 100
長縮減率 = 0.7

# 函式區 ----------------
def 初始設定() :
    左轉(90)
    速度('fastest')
    tracer(0, 0)

def 遞迴(, ) :
    if  > 最大層數 :
        畫點(10, 'red')
        return

    向前()
    畫點(10, 'black')

    右轉(轉角)
    遞迴( + 1,  * 長縮減率)

    左轉(轉角 * 2)
    遞迴( + 1,  * 長縮減率)

    右轉(轉角)
    向後()

# 主程式 ----------------
初始設定()

for  in range(90+1) :
    筆跡清除()
    轉角 =  
    遞迴(1, 開始長度)
    update()    

完成()




階段5: 樹與剪影

🎦 範例影片

📄 Py4t程式碼

# 模組區 ----------------
from 海龜模組 import *

# 全域變數 ----------------
最大層數 = 11
轉角 = 20
開始長度 = 300
長縮減率 = 0.7
開始寬度 = 40
寬縮減率 = 0.7

# 函式區 ----------------
def 初始設定() :
    左轉(90)
    速度('fastest')
    tracer(50, 0)
    視窗設定(1000, 1000)
    畫筆顏色('black')
    停筆()
    走到(0,-500)
    bgpic('sunset1.gif')

def 遞迴(, , ) :
    if  > 最大層數 :
        return

    下筆()
    畫筆尺寸()
    向前()
    停筆()

    右轉(轉角)
    遞迴( + 1,  * 長縮減率,  * 寬縮減率)

    左轉(轉角 * 2)
    遞迴( + 1,  * 長縮減率,  * 寬縮減率)

    右轉(轉角)
    向後()

# 主程式 ----------------

初始設定()

遞迴(1, 開始長度, 開始寬度)    

完成()




階段6: 樹與混沌

🎦 範例影片

📄 Py4t程式碼

# 模組區 ---------------
from 海龜模組 import *
import random as 隨機

# 全域變數 ---------------
最大層數 = 11
開始長度 = 300
長縮減最小 = 0.6
長縮減最大 = 0.8
開始寬度 = 40
寬縮減率 = 0.7
轉角最小 = 10
轉角最大 = 40
夾角最小 = 30
夾角最大 = 70

# 函式區 ---------------
def 初始設定() :
    左轉(90)
    速度('fastest')
    tracer(50, 0)
    視窗設定(1000, 1000)
    畫筆顏色('black')
    停筆()
    走到(0,-500)
    bgpic('sunset1.gif')


def 遞迴(, , ) :
    if  > 最大層數 :
        return

    下筆()
    畫筆尺寸()
    向前()
    停筆()

    轉角 = 隨機.randint(轉角最小,轉角最大)
    右轉(轉角)
    長縮減率 = 隨機.uniform(長縮減最小, 長縮減最大)
    遞迴( + 1,  * 長縮減率,  * 寬縮減率)

    夾角 = 隨機.randint(夾角最小,夾角最大)
    左轉(夾角)
    長縮減率 = 隨機.uniform(長縮減最小, 長縮減最大)
    遞迴( + 1,  * 長縮減率,  * 寬縮減率)

    右轉(夾角 - 轉角)
    向後()

# 主程式 ---------------
初始設定()

遞迴(1, 開始長度, 開始寬度)
update()

完成()




階段7: 樹與葉

🎦 範例影片

📄 Py4t程式碼

# 模組區 ---------------
from 海龜模組 import *
import random as 隨機

# 全域變數 ---------------
最大層數 = 11
開始長度 = 300
長縮減最小 = 0.6
長縮減最大 = 0.8
開始寬度 = 40
寬縮減率 = 0.7
轉角最小 = 10
轉角最大 = 40
夾角最小 = 30
夾角最大 = 70
葉直徑 = 6
葉層數 = 5

# 函式區 ---------------
def 初始設定() :
    左轉(90)
    速度('fastest')
    tracer(50, 0)
    視窗設定(1000, 1000)
    畫筆顏色('black')
    停筆()
    走到(0,-500)
    bgpic('sunset1.gif')
    隨機.seed(1)

def () :
    畫點(葉直徑, 'black')
    for  in range(4) :
        向前(葉直徑 * 2)
        畫點(葉直徑, 'black')
        向後(葉直徑 * 2)
        右轉(90)

def 遞迴(, , ) :
    if  > 最大層數 :
        return
    elif  > 最大層數 - 葉層數 :
        ()

    下筆()
    畫筆尺寸()
    向前()
    停筆()

    轉角 = 隨機.randint(轉角最小,轉角最大)
    右轉(轉角)
    長縮減率 = 隨機.uniform(長縮減最小, 長縮減最大)
    遞迴( + 1,  * 長縮減率,  * 寬縮減率)

    夾角 = 隨機.randint(夾角最小,夾角最大)
    左轉(夾角)
    長縮減率 = 隨機.uniform(長縮減最小, 長縮減最大)
    遞迴( + 1,  * 長縮減率,  * 寬縮減率)

    右轉(夾角 - 轉角)
    向後()

# 主程式 ---------------
初始設定()
遞迴(1, 開始長度, 開始寬度)
update()
完成()