如何用python简单画一棵树

 

 

import  turtle
p = turtle.Turtle()
turtle.colormode(255)
p.speed(0)

r = 0
g = 0
b = 0
length = 120

pen_size = 14
p.pensize(pen_size)
p.penup()
p.left(90)
p.backward(length)
p.pendown()
p.forward(length)

def draw_tree(l,lv):
    l = l*3/4
    size = p.pensize()
    p.pensize(size*3/4)
#画笔颜色
    global  r,g,b
    r += 1
    g += 2
    b += 3
#画笔颜色再0-199之间
    p.pencolor(r%200,g%200,b%200)
    #左边枝干
    p.left(45)
    p.forward(l)
#递归
    if lv < 14:
        draw_tree(l,lv+1)
    p.backward(l)
    p.right(90)
    #右边枝干
    p.forward(l)
    if lv < 14:
        draw_tree(l,lv+1)
    p.backward(l)
    p.left(45)
    p.pensize(size)

draw_tree(length,8)
#让画图窗口不自动关闭
turtle.done()
Python中,我们可以使用`turtle`模块来绘制一棵简单的树。`turtle`是一个基于Python的绘图库,它提供了一个绘图板(布)和一个小海龟(海龟是鼠标光标的别称),海龟可以理解为一个小机器人,根据用户的指令在布上移动、绘制图形。 下面是使用`turtle`模块绘制一棵简单树的代码示例: ```python import turtle # 设置布和海龟 screen = turtle.Screen() t = turtle.Turtle() t.speed(1) # 设置海龟图的速度 # 绘制树干 def draw_trunk(t, branch_length): if branch_length < 5: return else: # 绘制右侧的树枝 t.forward(branch_length) t.right(20) draw_trunk(t, branch_length - 15) # 返回到树干 t.left(40) draw_trunk(t, branch_length - 15) # 绘制左侧的树枝 t.right(20) t.backward(branch_length) # 绘制树冠 def draw_tree(t, branch_length): if branch_length < 5: return else: # 绘制右侧的树枝 t.forward(branch_length) t.right(20) draw_tree(t, branch_length - 15) # 返回到树干 t.left(40) draw_tree(t, branch_length - 15) # 绘制左侧的树枝 t.right(20) t.backward(branch_length) # 设置起始位置 t.penup() t.goto(0, -100) t.pendown() t.left(90) t.color("brown") # 绘制树干 draw_trunk(t, 100) # 绘制树冠 t.color("green") draw_tree(t, 100) # 隐藏海龟图标并完成绘制 t.hideturtle() screen.mainloop() ``` 这段代码首先导入`turtle`模块,然后设置布和海龟。`draw_trunk`函数负责绘制树干和树枝,通过递归的方式实现树枝的延伸。`draw_tree`函数用来绘制树冠,其逻辑与`draw_trunk`类似,但不需要绘制树干部分。最后,通过`screen.mainloop()`保持窗口打开,以便我们能够看到绘制的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值