• 轻松一刻 用代码画一个树


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

    有兴趣就尝试一下吧~

  • 相关阅读:
    dd
    VIC流程
    哈哈
    骂人的话 越毒越好不带脏字
    经典笑话大全 一句话超经典
    Struts,Hibernate,Spring经典面试题收藏
    尚学堂java相关
    Java关键字final、static使用总结
    新买了一对充电电池,是该先用光电再充还是先充再用?
    华为boss力荐公司高层看的一篇文章,真的很经典!!![转载]
  • 原文地址:https://www.cnblogs.com/onerose/p/10634517.html
Copyright © 2020-2023  润新知