zoukankan      html  css  js  c++  java
  • 轻松一刻 用代码画一个树

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

    有兴趣就尝试一下吧~

  • 相关阅读:
    [转帖]J2ME程序开发全方位基础讲解汇总
    IWAM账号密码不一致引起IIS无法处理ASP文件
    [存档]J2ME中随机数字处理全攻略
    利用计划任务和VBS脚本实现自动WEB共享文件夹里的文件
    完美解决Java程序在 MOTO E680i 中声音文件播放
    J2ME中使用pauseApp控制手机临时退出JAVA程序
    Web页中使用MediaPlayer
    严重注意MSSQL视图跨数据库复制的问题
    Java下数字类型的转换
    项目开发:电话留言软件(20050717)
  • 原文地址:https://www.cnblogs.com/onerose/p/10634517.html
Copyright © 2011-2022 走看看