轻松一刻 用代码画一个树

  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()

有兴趣就尝试一下吧~

posted @ 2019-04-01 09:09  小王是我  阅读(787)  评论(0编辑  收藏  举报