Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ต้นไม้เศษส่วนใน Python


รูปแบบเศษส่วนอยู่รอบตัวเราในธรรมชาติ เหมือนกิ่งเล็กๆ ที่ดึงออกมาจากใบของใบเฟิร์นที่มีลักษณะคล้ายใบเฟิร์นนั่นเอง หรือก้อนกรวดมักจะมีรูปร่างคล้ายภูเขา! ดังนั้น แนวคิดเรื่องการทำซ้ำของลวดลายขนาดเล็กเพื่อสร้างลวดลายขนาดใหญ่นี้จึงเรียกว่าต้นไม้เศษส่วน ในการเขียนโปรแกรมหลาม เรายังสามารถสร้างต้นไม้เศษส่วนโดยใช้โมดูลต่างๆ ที่มีอยู่

การใช้โมดูล 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())

ผลลัพธ์

การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:

ต้นไม้เศษส่วนใน Python

การใช้เต่า

การใช้โมดูล 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()

ผลลัพธ์

การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:

ต้นไม้เศษส่วนใน Python