python3用turtle模块画一棵随机樱花树

#!/usr/bin/env python
# coding=utf-8
# 画一棵樱花


import turtle
import random
from turtle import *
from time import sleep


# 画樱花的躯干(60,t)
def tree(branchLen,t):
    sleep(0.0005)
    if branchLen >3:
        if 8<= branchLen <=12:
            if random.randint(0,2) == 0:
                t.color('snow') # 白
            else:
                t.color('lightcoral') # 淡珊瑚色
            t.pensize(branchLen / 3)
        elif branchLen <8:
            if random.randint(0,1) == 0:
                t.color('snow')
            else:
                t.color('lightcoral') # 淡珊瑚色
            t.pensize(branchLen / 2)
        else:
            t.color('sienna') # 赭(zhě)色
            t.pensize(branchLen / 10) # 6
        t.forward(branchLen)
        a = 1.5 * random.random()
        t.right(20*a)
        b = 1.5 * random.random()
        tree(branchLen-10*b, t)
        t.left(40*a)
        tree(branchLen-10*b, t)
        t.right(20*a)
        t.up()
        t.backward(branchLen)
        t.down()

# 掉落的花瓣
def petal(m, t):
    for i in range(m):
        a = 200 - 400 * random.random()
        b = 10 - 20 * random.random()
        t.up()
        t.forward(b)
        t.left(90)
        t.forward(a)
        t.down()
        t.color('lightcoral') # 淡珊瑚色
        t.circle(1)
        t.up()
        t.backward(a)
        t.right(90)
        t.backward(b)

def main():
    # 绘图区域
    t = turtle.Turtle()
    # 画布大小
    w = turtle.Screen()
    t.hideturtle() # 隐藏画笔
    getscreen().tracer(5,0)
    w.screensize(bg='wheat') # wheat小麦
    t.left(90)
    t.up()
    t.backward(150)
    t.down()
    t.color('sienna')

    # 画樱花的躯干
    tree(60,t)
    # 掉落的花瓣
    petal(200, t)
    w.exitonclick()

main()

  • 43
    点赞
  • 140
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
好的,让我来为您展示如何使用Python中的turtle模块樱花树。 首先,我们需要导入turtle模块: ```python import turtle ``` 然后,我们需要设置一些布的基本参数,例如布大小、笔颜色等: ```python # 设置布大小 turtle.setup(width=800, height=600) # 设置笔颜色 turtle.pencolor("pink") ``` 接下来,我们需要定义一个函数来树干。树干可以看作是一条直线,可以使用turtle模块中的forward()函数来实现: ```python def tree(branchLen, t): if branchLen > 5: # 树干 t.forward(branchLen) # 右侧树枝递归 t.right(20) tree(branchLen - 15, t) # 左侧树枝递归 t.left(40) tree(branchLen - 15, t) # 返回树干原始位置 t.right(20) t.backward(branchLen) ``` 这个函数接收两个参数:树枝的长度和turtle对象。在函数中,我们首先判断树枝长度是否大于5,如果是,就用forward()函数出树干,然后递归地调用tree()函数出右侧和左侧的树枝。最后,我们需要将turtle对象返回到树干原始位置。 接下来,我们需要定义一个函数来花朵。我们可以使用turtle模块中的dot()函数来实现: ```python def flower(t): # 花 t.pencolor("red") t.fillcolor("pink") t.begin_fill() t.circle(10, 180) t.circle(25, 110) t.left(50) t.circle(40, 140) t.left(60) t.circle(30, 150) t.right(40) t.forward(30) t.end_fill() ``` 这个函数接收一个turtle对象,用于在布上出花朵。在函数中,我们首先设置笔和填充颜色,然后使用circle()函数出花瓣的弧线。最后,我们需要填充花朵的颜色。 最后,我们需要在主程序中调用上述两个函数,来出整个樱花树: ```python if __name__ == '__main__': # 设置笔速度 turtle.speed(0) # 树干 turtle.left(90) turtle.penup() turtle.backward(200) turtle.pendown() turtle.pensize(8) tree(100, turtle) # 花朵 turtle.penup() turtle.setpos(0, 0) turtle.pendown() turtle.pensize(2) for i in range(8): turtle.left(45 * i) flower(turtle) # 隐藏turtle对象 turtle.hideturtle() # 关闭turtle.done() ``` 在这个程序中,我们设置了笔的速度、笔粗细等参数。然后,我们使用penup()函数将turtle对象移动到树干的起始位置,然后使用pendown()函数开始树。最后,我们用for循环出8朵花,然后隐藏turtle对象并关闭布。 以上就是使用turtle模块樱花树的全部代码,您可以复制到Python IDE中执行,看到效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值