python画樱桃树

1.源代码

import turtle

toplevel = 8  # 一共递归6层
angle = 30
rangle = 15


def drawTree(length, level):
    turtle.left(angle)  # 绘制左枝
    turtle.color("black")
    turtle.forward(length)

    if level == toplevel:  # 叶子
        turtle.color("pink")
        turtle.circle(2, 360)

    if level < toplevel:  # 在左枝退回去之前递归
        drawTree(length - 10, level + 1)
    turtle.back(length)

    turtle.right(angle + rangle)  # 绘制右枝
    turtle.color("black")
    turtle.forward(length)

    if level == toplevel:  # 叶子
        turtle.color("pink")
        turtle.circle(2, 360)

    if level < toplevel:  # 在右枝退回去之前递归
        drawTree(length - 10, level + 1)
        turtle.color("black")
    turtle.back(length)
    turtle.left(rangle)


turtle.left(90)
turtle.penup()
turtle.back(300)
turtle.pendown()
turtle.forward(100)
turtle.speed('fastest')
drawTree(80, 1)

turtle.done()

2.运行结果

3.结论:

这段代码使用Python的turtle库绘制一棵树,使用递归的方式绘制树的枝干。首先定义了全局变量toplevel表示递归的层数,angle表示左枝的旋转角度,rangle表示右枝的旋转角度。然后定义了drawTree函数,该函数接受两个参数,分别是枝干的长度和当前的层数。在绘制左枝时,先将画笔向左旋转angle度,然后向前移动length长度,如果当前层数等于最高层数toplevel,则绘制一个叶子(使用turtle库的circle方法绘制一个半径为2的圆),否则继续递归调用drawTree函数。接着将画笔向后移动length长度,然后向右旋转angle + rangle度,绘制右枝,同样在绘制右枝之前判断当前层数是否为最高层数,是则绘制叶子,否则递归调用drawTree函数。最后将画笔向后移动length长度,向左旋转rangle度。最后设置turtle的初始状态,包括画笔的方向、位置和速度,然后调用drawTree函数开始绘制树。

  • 26
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴躁的秋秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值