프랙탈 패턴은 자연에서 우리 주변 어디에나 있습니다. 고사리의 잎사귀에서 나온 작은 가지처럼 잎 자체를 닮았다. 또는 조약돌은 종종 산의 모양과 비슷합니다! 따라서 작은 패턴을 반복하여 큰 패턴을 생성한다는 이 아이디어를 프랙탈 트리라고 합니다. 파이썬 프로그래밍에서는 사용 가능한 다양한 모듈을 사용하여 프랙탈 트리를 생성할 수도 있습니다.
파이게임 모듈 사용
이 모듈은 프랙탈 트리를 생성하는 데 필요한 기능을 제공합니다. 여기에서 먼저 화면 레이아웃 크기를 정의한 다음 패턴이 반복될 깊이를 정의합니다. 재귀는 특정 깊이까지 동일한 패턴을 계속해서 반복할 것이기 때문에 여기서 큰 역할을 합니다.
예시
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()) 출력
위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

거북이 사용
거북이 모듈을 사용하여 유사한 접근 방식을 따를 수 있습니다. 여기서 거북이 프로그램은 그림의 방향을 바꾸는 것만으로 나무의 가지를 반복적인 패턴으로 그리기 시작합니다. 함수가 반복되는 각도를 정의한 다음 완전한 트리를 얻습니다.
예시
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() 출력
위의 코드를 실행하면 다음과 같은 결과가 나타납니다.
