用户:
手捧软喵查看:0 回复:1 评论:0 创建时间:2021-04-03T17:51:47
import random import turtle
__Pen = turtle.Pen()
# 分形樱花树
# “画树”函数 # 参数分别是树枝长度、画笔
def tree(branchLen, t): if(branchLen > 3): if(8 <= branchLen and branchLen <= 12): if(random.randint(0,2) == 0): t.pencolor('snow') else: t.pencolor('lightcoral') t.pensize((branchLen / 3)) elif(branchLen < 8): if(random.randint(0,1) == 0): t.pencolor('snow') else: t.pencolor('lightcoral') t.pensize((branchLen / 2)) else: t.pencolor('sienna') t.pensize((branchLen / 10)) t.forward(branchLen) a = (1.5 * (random.random())) t.right((20 * a)) b = (1.5 * (random.random())) # 在tree函数内部调自己,这种方式叫递归调用 # 递归可以大幅提升编程效率 tree(branchLen - 10 * b, t) t.left((40 * a)) tree(branchLen - 10 * b, t) t.right((20 * a)) t.penup() t.backward(branchLen) t.pendown()
# 绘制树下花瓣,参数分别是画板数、画笔
def petal(m, t): for i inrange(m): a = (200 - 400 * (random.random())) b = (10 - 20 * (random.random())) t.penup() t.forward(b) t.left(90) t.forward(a) t.pendown() t.pencolor('lightcoral') t.circle(1) t.penup() t.backward(a) t.right(90) t.backward(b)
def main(): t = turtle.Pen() __Pen.hideturtle() t.speed(0) turtle.bgcolor('wheat') t.left(90) t.penup() t.backward(150) t.pendown() t.pencolor('sienna') tree(60, t) petal(100, t) turtle.done()
main()