侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

如何基于python实现画不同品种的樱花树

Python  /  管理员 发布于 7年前   395

这篇文章主要介绍了如何基于python实现画不同品种的樱花树,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

 动态生成樱花

效果图(这个是动态的):

实现代码:

import turtle as Timport randomimport time# 画樱花的躯干(60,t)def Tree(branch, t):  time.sleep(0.0005)  if branch > 3:    if 8 <= branch <= 12:      if random.randint(0, 2) == 0:        t.color('snow') # 白      else:        t.color('lightcoral') # 淡珊瑚色      t.pensize(branch / 3)    elif branch < 8:      if random.randint(0, 1) == 0:        t.color('snow')      else:        t.color('lightcoral') # 淡珊瑚色      t.pensize(branch / 2)    else:      t.color('sienna') # 赭(zhě)色      t.pensize(branch / 10) # 6    t.forward(branch)    a = 1.5 * random.random()    t.right(20 * a)    b = 1.5 * random.random()    Tree(branch - 10 * b, t)    t.left(40 * a)    Tree(branch - 10 * b, t)    t.right(20 * a)    t.up()    t.backward(branch)    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)# 绘图区域t = T.Turtle()# 画布大小w = T.Screen()t.hideturtle() # 隐藏画笔t.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()

飘落效果

效果图:

实现代码:

from turtle import *from random import *from math import *def tree(n,l):  pd()#下笔  #阴影效果  t = cos(radians(heading()+45))/8+0.25  pencolor(t,t,t)  pensize(n/3)  forward(l)#画树枝  if n>0:    b = random()*15+10 #右分支偏转角度    c = random()*15+10 #左分支偏转角度    d = l*(random()*0.25+0.7) #下一个分支的长度    #右转一定角度,画右分支    right(b)    tree(n-1,d)    #左转一定角度,画左分支    left(b+c)    tree(n-1,d)    #转回来    right(c)  else:    #画叶子    right(90)    n=cos(radians(heading()-45))/4+0.5    pencolor(n,n*0.8,n*0.8)    circle(3)    left(90)    #添加0.3倍的飘落叶子    if(random()>0.7):      pu()      #飘落      t = heading()      an = -40 +random()*40      setheading(an)      dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)      forward(dis)      setheading(t)      #画叶子      pd()      right(90)      n = cos(radians(heading()-45))/4+0.5      pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)      circle(2)      left(90)      pu()      #返回      t=heading()      setheading(an)      backward(dis)      setheading(t)  pu()  backward(l)#退回bgcolor(0.5,0.5,0.5)#背景色ht()#隐藏turtlespeed(0)#速度 1-10渐进,0 最快tracer(0,0)pu()#抬笔backward(100)left(90)#左转90度pu()#抬笔backward(300)#后退300tree(12,100)#递归7层done()

暗色效果

效果:

实现代码:

from turtle import *from random import *from math import *def tree(n, l):  pd()  t = cos(radians(heading() + 45)) / 8 + 0.25  pencolor(t, t, t)  pensize(n / 4)  forward(l)  if n > 0:    b = random() * 15 + 10    c = random() * 15 + 10    d = l * (random() * 0.35 + 0.6)    right(b)    tree(n - 1, d)    left(b + c)    tree(n - 1, d)    right(c)  else:    right(90)    n = cos(radians(heading() - 45)) / 4 + 0.5    pencolor(n, n, n)    circle(2)    left(90)  pu()  backward(l)bgcolor(0.5, 0.5, 0.5)ht()speed(0)tracer(0, 0)left(90)pu()backward(300)tree(13, 100)done()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


  • 上一条:
    Python如何使用字符打印照片
    下一条:
    Python基础之变量基本用法与进阶详解
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客