# -*- coding: utf-8 -*-
"""
作者:宇轩亚40
功能:利用递归绘制分形树
"""
import turtle
def draw_branch(branch_length):
"""
绘制分型树
"""
if branch_length > 5:
#绘制右侧树枝
turtle.forward(branch_length)
print('向前', branch_length)
turtle.right(20)
print('右转 20')
draw_branch(branch_length - 15)
#绘制左侧树枝
turtle.left(40)
print('左转 40')
draw_branch(branch_length - 15)
#返回之前的树枝路径
turtle.right(20)
print('右转 20')
turtle.backward(branch_length)
print('向后', branch_length)
def main():
"""
主函数
"""
turtle.left(90)
turtle.penup()
turtle.backward(100)
turtle.pendown()
turtle.color('red')
draw_branch(80)
turtle.exitonclick()
if __name__ == '__main__':
main()
运行上述程序,结果如下图所示:
同时,程序还会显示如下的运行结果:
向前 80
右转 20
向前 65
右转 20
向前 50
右转 20
向前 35
右转 20
向前 20
右转 20
左转 40
右转 20
向后 20
左转 40
向前 20
右转 20
左转 40
右转 20
向后 20
右转 20
向后 35
左转 40
向前 35
右转 20
向前 20
右转 20
左转 40
右转 20
向后 20
左转 40
向前 20
右转 20
左转 40
右转 20
向后 20
右转 20
向后 35
右转 20
向后 50
左转 40
向前 50
右转 20
向前 35
右转 20
向前 20
右转 20
左转 40
右转 20
向后 20
左转 40
向前 20
右转 20
左转 40
右转 20
向后 20
右转 20
向后 35
左转 40
向前 35
右转 20
向前 20
右转 20
左转 40
右转 20
向后 20
左转 40
向前 20
右转 20
左转 40
右转 20
向后 20
右转 20
向后 35
右转 20
向后 50
右转 20
向后 65
左转 40
向前 65
右转 20
向前 50
右转 20
向前 35
右转 20
向前 20
右转 20
左转 40
右转 20
向后 20
左转 40
向前 20
右转 20
左转 40
右转 20
向后 20
右转 20
向后 35
左转 40
向前 35
右转 20
向前 20
右转 20
左转 40
右转 20
向后 20
左转 40
向前 20
右转 20
左转 40
右转 20
向后 20
右转 20
向后 35
右转 20
向后 50
左转 40
向前 50
右转 20
向前 35
右转 20
向前 20
右转 20
左转 40
右转 20
向后 20
左转 40
向前 20
右转 20
左转 40
右转 20
向后 20
右转 20
向后 35
左转 40
向前 35
右转 20
向前 20
右转 20
左转 40
右转 20
向后 20
左转 40
向前 20
右转 20
左转 40
右转 20
向后 20
右转 20
向后 35
右转 20
向后 50
右转 20
向后 65
右转 20
向后 80