# -*- encoding: utf-8 -*-
#导包
import turtle
#随机模块
import random
#导入一个模块的所有属性
from turtle import *
from time import sleep
#建立对象
t = turtle.Turtle()
#定义画布
w = turtle.Screen()
#封装树的方法
def tree(branchLen, t):
if branchLen > 3:
if 8 <= branchLen <= 12:
#画枝叶和花
#random生成随机整数,参数代表区间
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')
#换画笔尺寸
t.pensize(branchLen / 10)
#进行绘制
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()
#定义我的窗口
myWin = turtle.Screen()
getscreen().tracer(5, 0)
#设置屏幕尺寸
turtle.screensize(bg='wheat')
t.left(90)
t.up()
t.backward(150)
t.down()
#着色
t.color('sienna')
#调用树的方法
tree(70, t)
petal(100, t)
#保存屏幕
myWin.exitonclick()
if __name__ == "__main__":
main()