รูปแบบเศษส่วนอยู่รอบตัวเราในธรรมชาติ เหมือนกิ่งเล็กๆ ที่ดึงออกมาจากใบของใบเฟิร์นที่มีลักษณะคล้ายใบเฟิร์นนั่นเอง หรือก้อนกรวดมักจะมีรูปร่างคล้ายภูเขา! ดังนั้น แนวคิดเรื่องการทำซ้ำของลวดลายขนาดเล็กเพื่อสร้างลวดลายขนาดใหญ่นี้จึงเรียกว่าต้นไม้เศษส่วน ในการเขียนโปรแกรมหลาม เรายังสามารถสร้างต้นไม้เศษส่วนโดยใช้โมดูลต่างๆ ที่มีอยู่
การใช้โมดูล pygame
โมดูลนี้มีฟังก์ชันที่จำเป็นในการสร้างต้นไม้เศษส่วน ในที่นี้ ขั้นแรกเราจะกำหนดขนาดเลย์เอาต์ของหน้าจอ จากนั้นกำหนดความลึกที่รูปแบบจะทำซ้ำเอง การเรียกซ้ำมีบทบาทสำคัญที่นี่ เนื่องจากเราจะทำซ้ำรูปแบบเดิมซ้ำแล้วซ้ำเล่าจนถึงระดับความลึกที่กำหนด
ตัวอย่าง
import pygame, math
pygame.init()
screen = pygame.display.set_mode((750, 650))
pygame.display.set_caption("Fractal Tree")
display = pygame.display.get_surface()
def drawTree(a, b, pos, deepness):
if deepness:
c = a + int(math.cos(math.radians(pos)) * deepness * 10.0)
d = b + int(math.sin(math.radians(pos)) * deepness * 10.0)
pygame.draw.line(display, (127,255,0), (a, b), (c, d), 1)
drawTree(c, d, pos - 25, deepness - 1)
drawTree(c, d, pos + 25, deepness- 1)
def process(event):
if event.type == pygame.QUIT:
exit(0)
drawTree(370, 650, -90, 10)
pygame.display.flip()
while True:
process(pygame.event.wait()) ผลลัพธ์
การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:

การใช้เต่า
การใช้โมดูล Turtle เราสามารถทำตามแนวทางที่คล้ายกันได้ ที่นี่โปรแกรมเต่าเริ่มวาดกิ่งก้านของต้นไม้เป็นลวดลายซ้ำๆ โดยเพียงแค่เปลี่ยนทิศทางการวาด เรากำหนดมุมที่ฟังก์ชันจะทำซ้ำ จากนั้นเราจะได้ต้นไม้ที่สมบูรณ์
ตัวอย่าง
import turtle
def tree(Length,n):
if Length > 10:
n.forward(Length)
n.right(25)
tree(Length-15,n)
n.left(50)
tree(Length-15,n)
n.right(25)
n.backward(Length)
def function():
n = turtle.Turtle()
data = turtle.Screen()
n.left(90)
n.up()
n.backward(100)
n.down()
n.color("green")
tree(85,n)
data.exitonclick()
function() ผลลัพธ์
การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:
