zoukankan      html  css  js  c++  java
  • 画树

    # -*- encoding: utf-8 -*-
    #导包
    import turtle
    #随机模块
    import random
    #导入一个模块的所有属性
    from turtle import *
    from time import sleep
    #建立对象
    t = turtle.Turtle()
    #定义画布
    w = turtle.Screen()
    #封装树的方法
    def tree(branchLen, t):
      if branchLen > 3:
        if 8 <= branchLen <= 12:
          #画枝叶和花
          #random生成随机整数,参数代表区间
          if random.randint(0, 2) == 0:
            #着色
            t.color('snow')
          else:
            t.color('lightcoral')
            t.pensize(branchLen / 3)
         elif branchLen < 8:
            #树干链接
            if random.randint(0, 1) == 0:
              #着色
              t.color('snow')
            else:
              t.color('lightcoral')
              t.pensize(branchLen / 2)
         else:
            #画边界,轮廓
            t.color('sienna')
            #换画笔尺寸
            t.pensize(branchLen / 10)
     
     
         #进行绘制
         t.forward(branchLen)
         #定义坐标
         a = 1.5 * random.random()
         #向右位移
         t.right(20*a)
         b = 1.5 * random.random()
         #递归调用
         tree(branchLen-10*b, t)
          #向左位移
         t.left(40*a)
         #继续绘制
         tree(branchLen-10*b, t)
         t.right(20*a)
         t.up()
    `     #收尾
         t.backward(branchLen)
         t.down()


    def petal(m, t): # 树下花瓣

      for i in range(m):
            a = 200 - 400 * random.random()
            b = 10 - 20 * random.random()
            t.up()
            t.forward(b)
            t.left(90)
            t.forward(a)
            t.down()
            t.color("lightcoral")
            t.circle(1)
            t.up()
            t.backward(a)
            t.right(90)
            t.backward(b)



    def main():
          #绘制屏幕画布
          t = turtle.Turtle()
          #定义我的窗口
          myWin = turtle.Screen()
          getscreen().tracer(5, 0)
          
          #设置屏幕尺寸
          turtle.screensize(bg='wheat')
          t.left(90)
          t.up()
          t.backward(150)
          t.down()
          #着色
          t.color('sienna')
          #调用树的方法
          tree(70, t)
          petal(100, t)
          #保存屏幕
          myWin.exitonclick()



    if __name__ == "__main__":
          main()
  • 相关阅读:
    读写二进制c# 二进制读写
    重构风险程序员一定要遵守的规则
    文件区域使用fcntl锁定文件,并且测试
    数据清空js清空div里的数据问题
    模板缓存ThinkPHP中的模板引擎和视图层
    描述null11121 Base 2
    操作系统请求操作系统 算法
    工程项目eclipse项目名前出现红色感叹号,小红叉解决
    程序链接关于静态链接,动态链接,共享库,ABI的一些记录(os学习)
    NMAKE命令行编译
  • 原文地址:https://www.cnblogs.com/chengdongzi/p/10286525.html
Copyright © 2011-2022 走看看