1 # -*- encoding: utf-8 -*- 2 3 4 #导包 5 import turtle 6 #随机模块 7 import random 8 #导入一个模块的所有属性 9 from turtle import * 10 from time import sleep 11 12 13 #建立对象 14 t = turtle.Turtle() 15 #定义画布 16 w = turtle.Screen() 17 18 19 #封装树的方法 20 def tree(branchLen, t): 21 if branchLen > 3: 22 if 8 <= branchLen <= 12: 23 #画枝叶和花 24 #random生成随机整数,参数代表区间 25 if random.randint(0, 2) == 0: 26 #着色 27 t.color(‘snow‘) 28 else: 29 t.color(‘lightcoral‘) 30 t.pensize(branchLen / 3) 31 elif branchLen < 8: 32 #树干链接 33 if random.randint(0, 1) == 0: 34 #着色 35 t.color(‘snow‘) 36 else: 37 t.color(‘lightcoral‘) 38 t.pensize(branchLen / 2) 39 else: 40 #画边界,轮廓 41 t.color(‘sienna‘) 42 #换画笔尺寸 43 t.pensize(branchLen / 10) 44 45 46 #进行绘制 47 t.forward(branchLen) 48 #定义坐标 49 a = 1.5 * random.random() 50 #向右位移 51 t.right(20*a) 52 b = 1.5 * random.random() 53 #递归调用 54 tree(branchLen-10*b, t) 55 #向左位移 56 t.left(40*a) 57 #继续绘制 58 tree(branchLen-10*b, t) 59 t.right(20*a) 60 t.up() 61 ` #收尾 62 t.backward(branchLen) 63 t.down() 64 65 def petal(m, t): # 树下花瓣 66 67 for i in range(m): 68 a = 200 - 400 * random.random() 69 b = 10 - 20 * random.random() 70 t.up() 71 t.forward(b) 72 t.left(90) 73 t.forward(a) 74 t.down() 75 t.color("lightcoral") 76 t.circle(1) 77 t.up() 78 t.backward(a) 79 t.right(90) 80 t.backward(b) 81 82 83 84 def main(): 85 #绘制屏幕画布 86 t = turtle.Turtle() 87 #定义我的窗口 88 myWin = turtle.Screen() 89 getscreen().tracer(5, 0) 90 91 #设置屏幕尺寸 92 turtle.screensize(bg=‘wheat‘) 93 t.left(90) 94 t.up() 95 t.backward(150) 96 t.down() 97 #着色 98 t.color(‘sienna‘) 99 #调用树的方法 100 tree(70, t) 101 petal(100, t) 102 #保存屏幕 103 myWin.exitonclick() 104 105 106 107 if __name__ == "__main__": 108 main()
有兴趣就尝试一下吧~
原文:https://www.cnblogs.com/onerose/p/10634517.html