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