python3实现用turtle模块画一棵随机樱花树

yipeiwu_com6年前Python基础

废话不多说了,直接上代码吧!

#!/usr/bin/env python
# coding=utf-8
# 画一棵樱花
 
 
import turtle
import random
from turtle import *
from time import sleep
 
 
# 画樱花的躯干(60,t)
def tree(branchLen,t):
  sleep(0.0005)
  if branchLen >3:
    if 8<= branchLen <=12:
      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') # 赭(zhě)色
      t.pensize(branchLen / 10) # 6
    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()
  # 画布大小
  w = turtle.Screen()
  t.hideturtle() # 隐藏画笔
  getscreen().tracer(5,0)
  w.screensize(bg='wheat') # wheat小麦
  t.left(90)
  t.up()
  t.backward(150)
  t.down()
  t.color('sienna')
 
  # 画樱花的躯干
  tree(60,t)
  # 掉落的花瓣
  petal(200, t)
  w.exitonclick()
 
main()

以上这篇python3实现用turtle模块画一棵随机樱花树就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python函数式编程指南(二):从函数开始

2. 从函数开始 2.1. 定义一个函数 如下定义了一个求和函数: 复制代码 代码如下: def add(x, y):     return x + y...

django model去掉unique_together报错的解决方案

事情是这样的,我有一个存储考试的表 class Exam(models.Model): category = cached_fields.ForeignKeyField(Categ...

详解Python中time()方法的使用的教程

 time()方法返回时间,在UTC时代以秒表示浮点数。 注意:尽管在时间总是返回作为一个浮点数,并不是所有的系统提供时间超过1秒精度。虽然这个函数正常返回非递减的值,就可以在...

使用python开发vim插件及心得分享

使用python开发vim插件及心得分享

vim有各种强大的插件,这不仅归功于其提供的用来编写插件的脚本语言vimL,还得益于它良好的接口实现,从而支持python等语言编写插件。当vim编译时带有+python特性时就能使用p...

使用python编写简单的小程序编译成exe跑在win10上

使用python编写简单的小程序编译成exe跑在win10上

每天的工作其实很无聊,早知道应该去IT公司闯荡的。最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅。   人的精力...