小象学院—案例2—分形树(不完整)

敲黑板!!!!!!

1、turtle库的使用(具体参照turtlr库的使用)

import turtle   #声明  
turtle.pensize(branch_length/10)  #设置画笔大小
turtle.forward(branch_length)    #画笔向前移动(默认初始向画板右侧)
turtle.right(20)            #向右转动角度
turtle.color('green')         #设置画笔颜色
turtle.penup()             #画笔抬起
turtle.backward(150)          #画笔向后
turtle.pendown()            #画笔落下
turtle.exitonclick()          #点击退出画板

2、函数嵌套、迭代

def draw_branch(branch_length):      #输入参数branch_length、branch_length为根部第一节的长度
    """
        绘制分形树
    """
    if branch_length > 5:
        # 绘制右侧树枝
        turtle.pensize(branch_length/10)      #根据枝干长度来设置画笔大小,从而控制树干粗细,
turtle.forward(branch_length)      #沿着turtle现在的方向画出一条树枝
print('向前 ', branch_length)
turtle.right(
20)              #下一树枝右侧部分方向设置 print('右转 20') draw_branch(branch_length - 15)     #调用函数画出右侧方向的树枝,直到树枝长度小于等于20,才不画下一节的树支 # 绘制左侧树枝 turtle.left(40)              #右侧满树,此时branch_length值小于或等于20,左转40度,准备画出左侧树 print('左转 40') draw_branch(branch_length - 15)    #两种情况  1、branch_length - 15 < 5 不满足条件->退出函数                              #     2、否则画出左侧树枝     # 返回之前的树枝 if branch_length <= 15: turtle.color('green') else: turtle.color('brown')
turtle.right(
20) print('右转 20') turtle.backward(branch_length) print('向后 ', branch_length)

猜你喜欢

转载自www.cnblogs.com/mirocle/p/12132915.html