每天好心情——Python画一棵樱花树

这篇具有很好参考价值的文章主要介绍了每天好心情——Python画一棵樱花树。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天看书,发现了个不错的程序,好家伙,二话不说,直接上手。每天好心情——Python画一棵樱花树

调到最好状态的效果图就是这样的。
每天好心情——Python画一棵樱花树
代码如下:

代码

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
        ran=random()
        #这里相比于原来随机添加了填充的圆圈,让樱花叶子看起来更多一点
        if(ran>0.7):
            begin_fill()
            circle(3)
            fillcolor('pink')
        #把原来随机生成的叶子换成了统一的粉色
        pencolor("pink")
        circle(3)
        if(ran>0.7):
            end_fill()
        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)#退回

    
if __name__ == '__main__':    
    bgcolor(0.856,0.8255,0.8882)#设置背景色(把灰色换成淡紫色)
    ht()#隐藏turtle
    speed(10)#速度 1-10渐进,0 最快
    tracer(0,0)
    pu()#抬笔
    backward(50)
    left(90)#左转90度
    pu()#抬笔
    backward(300)#后退300
    tree(12,100)#递归12层
    done()

原理

1. 二叉树

大家自习观察就能发现我们的树枝都是两两分叉的,这就是通过二叉树的层层递归建立实现的,中间其实并不复杂,找到合适的层级数在进行构建二叉树再配合turtle进行绘画就可以啦。

例如下面当递归层数较少时候,我们就很容易发现是二叉树的构成,在构建时候再将每个树枝的长度都随机一下就可以案例。
每天好心情——Python画一棵樱花树

2. python的turtle库

真棵樱花树的绘制效果是通过 Python 中的 turtle 来实现的,Python 的强大之处在于有许多很强大的库,turtle就是其中之一,是 Python 自带的一个库。

基本入门可以参考这篇文章:https://zhuanlan.zhihu.com/p/64594462

详细内容请查看官方文档:https://docs.python.org/zh-cn/3/library/turtle.html

学废了赶紧画一棵送给喜欢的妹子吧 O(∩_∩)O

递归效果探究

五层

当递归五层时就是这个熊样,很秃然
每天好心情——Python画一棵樱花树

七层

每天好心情——Python画一棵樱花树

十层

每天好心情——Python画一棵樱花树

十二层(最好)

每天好心情——Python画一棵樱花树

十四层

这里就太多了,显得不大好看了,程序运行等了几分钟才画出来。

(在这里也希望广大程序员的头发像这一样茂密,(*^▽^*)
每天好心情——Python画一棵樱花树文章来源地址https://www.toymoban.com/news/detail-426459.html

到了这里,关于每天好心情——Python画一棵樱花树的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用python代码画一幅星空

    运行代码后,会在画布上画出一些大小不同、位置随机的白色星星,就像是一幅星空一样。你可以根据自己的需求修改代码,调整画布大小、星星数量和大小等参数,让画出来的星空更加逼真。 效果如图所示  

    2024年02月11日
    浏览(32)
  • 用python画一颗会动的圣诞树

    要用 Python 画一棵会动的圣诞树,你可以使用 Python 的图形库来实现。比如说可以使用 Tkinter、pygame 等库。 这里以 Tkinter 为例,给出一个简单的代码示例: 在这段代码中,我们首先使用 Tkinter 库创建了一个窗口和一个画布,然后使用画布的 create_polygon 方法在画布上画出了一棵

    2024年02月03日
    浏览(35)
  • pythonturtle绘图代码樱花,如何用python画一朵樱花

    大家好,给大家分享一下python画樱花树代码如何读懂,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 最近在学习Python库turtle的用法,顺便也整理了几个用turtle库画的图形,具体如下PYTHON库“IMITATION”。 1. 引用 turtle库 2. 常用的基础函数 (1)绘制状态的函

    2024年02月04日
    浏览(28)
  • 如何让心情保持平静?100多条禅修心法

    静的层次和阶段 静首先是不要去争,没有任何争的心,没有任何杂念心。静有几个层次阶段: ⒈. 自己的心情相对于自己平静,是平静的第一个阶段。 ⒉. 第二个平静的阶段是:别人觉得你很静,自己也很静,这个相对比较真实了。 有的人一点都不静,说“我挺静的呀,”

    2023年04月19日
    浏览(42)
  • 《python每天一小段》-- (11)操作 Excel 详解

    欢迎阅读《Python每天一小段》系列!在本篇文章中,将使用Python编写自动化 Excel 操作的程序。 (1)Python 操作 Excel 详解 Excel 是办公软件中常用的工具之一,它可以用于存储、整理和分析数据。Python 是一门强大的编程语言,它可以用于自动化 Excel 操作。 在本教程中,我们将

    2024年02月04日
    浏览(26)
  • 《python每天一小段》--12 数据可视化《1》

    欢迎阅读《Python每天一小段》系列!在本篇中,将使用Python Matplotlib实现数据可视化的简单图形。 Matplotlib是一个流行的Python数据可视化库,它提供了丰富的绘图功能,可以创建各种类型的图表,包括折线图、散点图、柱状图、饼图等。 要查看使用matplotlib可制作的各种图表,

    2024年02月04日
    浏览(29)
  • ArcGis教程-画一幅城市的shp地图

    怎样使用ArcGis10.6得到这么一幅shp地图呢? 首先打开ArcGis10.6,点击带黄底的小加号,添加底图。 可以选择中国地图彩色版,然后双击,转动鼠标滑轮找到属于自己的城市。 点击-目录,在新建的文件夹里右击-新建-shapefile。 格式选择折线,先把主要河流道路画上,有个大致的

    2024年02月05日
    浏览(30)
  • arcgis:画一幅自己城市的shp地图

    首先打开ArcGis10.6,点击带黄底的小加号,添加底图。 可以选择中国地图彩色版,然后双击,转动鼠标滑轮找到属于自己的城市。 点击-目录,在新建的文件夹里右击-新建-shapefile。 格式选择折线,先把主要河流道路画上,有个大致的轮廓。可以选择一下与底图匹配的坐标系,

    2024年02月11日
    浏览(29)
  • 6个实用的 Python 自动化脚本,让你每天轻轻松松

    每天你都可能会执行许多重复的任务,例如阅读 pdf、播放音乐、查看天气、打开书签、清理文件夹等等,使用自动化脚本,就无需手动一次又一次地完成这些任务,非常方便。而在某种程度上,Python 就是自动化的代名词。今天分享 6 个非常有用的 Python 自动化脚本。 1、将

    2024年02月05日
    浏览(36)
  • 【python+selenium】LOL全英雄全皮肤爬虫--给电脑每天换张壁纸

    很多英雄联盟的元老级玩家都认可 LOL 的美工做得很好,不乏玩家将英雄的皮肤设为手机、电脑的壁纸或个人社交账号的头像。 作为 LOL 发烧友,如果想每天换一张电脑壁纸,该如何爬取 LOL 全英雄的全部皮肤呢?由于皮肤数量过多,最好能按英雄名分文件夹存储,找起来也比

    2024年02月15日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包