python 使用turtle 画樱花(python3验证ok)

#coding=utf-8

import turtle as T
import random
import time

# 画樱花的躯干(60,t)
def Tree(branch, t):
    time.sleep(0.0005)
    if branch > 3:
        if 8 <= branch <= 12:
            if random.randint(0, 2) == 0: # 生成[0,2]的随机数
                t.color('snow')  # 白 #绘制图形时的颜色
            else:
                t.color('lightcoral')  # 淡珊瑚色
            t.pensize(branch / 3)
        elif branch < 8:
            if random.randint(0, 1) == 0:
                t.color('snow')
            else:
                t.color('lightcoral')  # 淡珊瑚色
            t.pensize(branch / 2)
        else:
            t.color('sienna')  # 赭(zhě)色
            t.pensize(branch / 10)  # 6
        t.forward(branch)
        a = 1.5 * random.random()
        t.right(20 * a) #向右移动多少度
        b = 1.5 * random.random()
        Tree(branch - 10 * b, t)
        t.left(40 * a) #向左移动多少度
        Tree(branch - 10 * b, t)
        t.right(20 * a)
        t.up()  #移动时不绘制图形
        t.backward(branch)
        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)  #画圆 turtle.circle(radius, extent=None, steps=None)  注: radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆
        t.up()
        t.backward(a)
        t.right(90)
        t.backward(b)

# 绘图区域
t = T.Turtle()
# 画布大小
w = T.Screen()
t.hideturtle()  # 隐藏画笔
t.getscreen().tracer(5, 0) #(1)getscreen():返回正在绘制的对象  (2)# 获得屏幕句柄,可以对其进行操作 # 每5次操作将屏幕刷新,延时为0 (3)turtle.tracer(False) 如果想直接看成功图就加上这一行,不会看见画图的过程
w.screensize(bg='wheat')  # wheat小麦; 设置画布大小  turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别为画布的宽(单位像素), 高, 背景颜色。
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')

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



 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来为您展示如何使用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中执行,看到效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值