Python樱花树

2024-02-27 1587阅读

温馨提示:这篇文章已超过449天没有更新,请注意相关的内容是否还可用!

Python樱花树

文章目录

  • 系列文章
  • 前言
  • Turtle基础
    • 1.1 Turtle画板
    • 1.2 Turtle画笔
    • 1.3 Turtle画图
    • 1.4 Turtle填色
    • 1.5 Turtle写字
    • Python樱花树
      • 2.1 樱花类
      • 2.2 樱花树
      • 2.3 主函数
      • 2.4 程序分析
      • 2.5 樱花林
      • 完整代码
      • 尾声

        系列文章

        序号文章目录直达链接
        表白系列
        1无法拒绝的表白界面https://want595.blog.csdn.net/article/details/134744894
        2满屏飘字表白代码https://want595.blog.csdn.net/article/details/135037388
        3无限弹窗表白代码https://want595.blog.csdn.net/article/details/134744711
        4李峋同款可写字版跳动的爱心https://want595.blog.csdn.net/article/details/134744191
        5流星雨https://want595.blog.csdn.net/article/details/134747408
        6漂浮爱心https://want595.blog.csdn.net/article/details/134744929
        7爱心光波https://want595.blog.csdn.net/article/details/134747365
        8玫瑰花https://want595.blog.csdn.net/article/details/134747447
        节日系列
        1新春/跨年烟花秀(2022)https://want595.blog.csdn.net/article/details/128727394
        烟花秀(2023)https://want595.blog.csdn.net/article/details/135042880
        粒子烟花https://want595.blog.csdn.net/article/details/136029420
        2圣诞节圣诞礼物https://want595.blog.csdn.net/article/details/135336583
        圣诞树(2022)https://want595.blog.csdn.net/article/details/128428985
        绿色圣诞树(2023)https://want595.blog.csdn.net/article/details/135048607
        粉色圣诞树(2023)https://want595.blog.csdn.net/article/details/135043042
        3冬至大雪纷飞https://want595.blog.csdn.net/article/details/128806017
        4生日生日蛋糕https://want595.blog.csdn.net/article/details/128739755
        5儿童节五彩气球https://want595.blog.csdn.net/article/details/128741043
        6国庆节国庆祝福https://want595.blog.csdn.net/article/details/128740923
        7万圣节万圣礼物https://want595.blog.csdn.net/article/details/128734395
        8愚人节愚人代码https://want595.blog.csdn.net/article/details/128696990
        9中秋节浪漫星空https://want595.blog.csdn.net/article/details/128737284
        10植树节樱花树https://want595.blog.csdn.net/article/details/128700178
        动漫系列
        1名侦探柯南系列柯南https://want595.blog.csdn.net/article/details/134777613
        2喜羊羊与灰太狼系列喜羊羊https://want595.blog.csdn.net/article/details/134778583
        懒羊羊https://want595.blog.csdn.net/article/details/134847642
        灰太狼https://want595.blog.csdn.net/article/details/135335303
        小灰灰https://want595.blog.csdn.net/article/details/135335445
        小香香https://want595.blog.csdn.net/article/details/135056783
        3海绵宝宝系列海绵宝宝https://want595.blog.csdn.net/article/details/134847364
        4哆啦A梦系列哆啦A梦https://want595.blog.csdn.net/article/details/135037884
        5HelloKitty系列hellokittyhttps://want595.blog.csdn.net/article/details/135337732
        6Tom&Jerry系列Tom&Jerryhttps://want595.blog.csdn.net/article/details/135337775
        7草莓熊系列草莓熊https://want595.blog.csdn.net/article/details/135337832
        8皮卡丘系列迷你皮卡丘https://want595.blog.csdn.net/article/details/135337911
        高级皮卡丘https://want595.blog.csdn.net/article/details/135337937
        豪华皮卡丘https://want595.blog.csdn.net/article/details/135337947
        炫酷系列
        1  一闪一闪亮星星系列张万森下雪了https://want595.blog.csdn.net/article/details/135336915
        一闪一闪亮星星https://want595.blog.csdn.net/article/details/135337049
        2代码雨https://want595.blog.csdn.net/article/details/135054341
        3七彩花朵https://want595.blog.csdn.net/article/details/135056670
        43D星空https://want595.blog.csdn.net/article/details/135056516
        5金榜题名https://want595.blog.csdn.net/article/details/135056150
        6满天星https://want595.blog.csdn.net/article/details/135056305
        ……

        前言

        粉色系最爱!Python樱花树等你获取~

        哈喽小伙伴们好久不见啦,最近樱花开得好美吖,博主想和大家一起分享春天的快乐,一起来看看博主画的樱花树吧!

        Turtle基础

        老生常谈啦,在用python画樱花树前,我们先来了解一下turtle吧!

        小海龟(Turtle)是Python中画图的一个重要的包(内置包),里面包含丰富的画图工具以及画图的各种功能,当你学会了用Turtle画图后,你可以画任何你想画的图案哦。

        1.1 Turtle画板

        Turtle的画板大小可以用turtle.screensize()函数来设置

        turtle.screensize(width,height,bg)
        

        设置画板的大小,包含宽和高,width为宽,height为高,bg为画布颜色

        1.2 Turtle画笔

        Turtle的画笔有几个常用的函数:

        ①turtle.penup():抬起画笔,此时移动画笔不会在画布上留下痕迹哦

        ②turtle.pendown():放下画笔,与turtle.penup相对应,放下画笔后就可以继续画画了(放下画笔后画画会在画布上留下痕迹)

        ③turtle.pensize():控制画笔的大小(可以根据需求自行定义画笔的大小哦)

        ④turtle.pencolor():控制画笔的颜色(可以自己在网上查阅所有python可以使用的颜色,python里面可以用的颜色有很多的哦)

        ⑤turtle.hideturtle():隐藏画笔(隐藏画笔以后画图时画笔就看不到了)

        1.3 Turtle画图

        在画图的过程中,我们经常要使用一些简单的移动函数:

        ①turtle.forward(x):将画笔向前移动x个像素(x可以理解为距离)

        ②turtle.backward(x):将画笔向后退x个像素(x可以理解为距离)

        ③turtle.left(n):将画笔向左旋转n度

        ④turtle.right(n):将画笔向右旋转n度

        ⑤turtle.speed():设置画笔画图的速度(1~10递增,0最快)

        1.4 Turtle填色

        在画好图后,我们经常需要对其进行填色,这里可以用turtle.fillcolor()函数,括号里写入你想填充的颜色即可。

        在使用turtle.fillcolor()函数要注意其基本格式:

        turtle.beginfill()     #开始填充
        turtle.fillcolor()      #输入填充的颜色
        turtle.endfill()        #结束填充
        

        1.5 Turtle写字

        在完成整个画图后,我们可以使用turtle.write()函数进行写字

        turtle.write(" ",move,align,font)
        

        ① 第一个位置双引号内填入要写的字

        ② move(可选):在默认情况下,move为false。如果move为true,则笔将移动到右下角

        ③ align(可选):可取值是left即左、center即中、right即右之一,是字符串格式

        ④ font(可选):字体三元组(fontname、fontsize、fonttype),fontname即字体名称(字符串格式,如“宋体”),fontsize即字体大小),fonttype即字体类型如:normal(普通)、bold(粗体)、italic(斜体)

        Python樱花树

        简单的了解turtle小海龟后,我们就可以步入今天的主题啦!

        Python樱花树

        2.1 樱花类

        既然是樱花树,那肯定要画樱花啦,在这里我选择了五片花瓣的樱花

        def flower():  
            tu.hideturtle() 
            tu.pensize(2)  
            tu.pencolor("pink")
            flowersize = ra.randint(1,5)  
            for j in range(5):  
                tu.forward(int(flowersize))
                tu.backward(int(flowersize))
                tu.right(72)
        

        2.2 樱花树

        樱花画好后,我们就可以递归画树啦

        def tree(n,k):
            tu.pendown()  
            tu.pencolor("black")
            tu.pensize(n/4)
            tu.forward(k)  
            if n>0:
                r=ra.random()*10+10
                l=ra.random()*10+10
                x=k*(ra.random()*0.25+0.7)  
                tu.right(r)
                tree(n-1,x)
                tu.left(l+r)
                tree(n-1, x)
                tu.right(l)
            else:
                tu.right(90)
                flower()
                tu.left(90)
                tu.pu()
                t=tu.heading()
                s=-ra.random()
                tu.setheading(s)
                x=ra.randint(1,5)
                tu.forward(x)
                tu.setheading(t)
                tu.pd()
                tu.right(90)
                flower()
                tu.left(90)
                tu.pu()
                t=tu.heading()
                tu.setheading(s)
                tu.backward(x)
                tu.setheading(t)
            tu.penup()
            tu.backward(k) 
        

        2.3 主函数

        最后,我们需要一个主函数来实现樱花树

        tu.setup(800,480)
        tu.bgcolor("lavenderblush") 
        tu.hideturtle()  
        tu.tracer(0)
        tu.penup()  
        tu.goto(0,-150)
        tu.pendown()
        tu.left(90)  
        tree(12,50)
        for i in range(99):
            tu.penup()
            tu.goto(ra.randint(-150,150),ra.randint(-150,0))
            tu.pendown()
            flower()
        

        2.4 程序分析

        让我们具体分析一下樱花树的代码吧!

        1. 导入turtle和random库
        import turtle as tu
        import random as ra
        

        在代码中使用了turtle库进行绘图,以及random库随机生成数值。

        1. 定义flower函数
        def flower():  
            tu.hideturtle() 
            tu.pensize(2)  
            tu.pencolor("pink")
            flowersize = ra.randint(1,5)  
            for j in range(5):  
                tu.forward(int(flowersize))
                tu.backward(int(flowersize))
                tu.right(72)
        

        flower函数用于画出一个花朵。首先,将turtle隐藏、设置笔尺寸和颜色。然后用随机数生成花朵的大小,并循环绘制5个花瓣。

        1. 定义tree函数
        def tree(n,k):
            tu.pendown()  
            tu.pencolor("black")
            tu.pensize(n/4)
            tu.forward(k)  
            if n>0:
                r=ra.random()*10+10
                l=ra.random()*10+10
                x=k*(ra.random()*0.25+0.7)  
                tu.right(r)
                tree(n-1,x)
                tu.left(l+r)
                tree(n-1, x)
                tu.right(l)
            else:
                tu.right(90)
                flower()
                tu.left(90)
                tu.pu()
                t=tu.heading()
                s=-ra.random()
                tu.setheading(s)
                x=ra.randint(1,5)
                tu.forward(x)
                tu.setheading(t)
                tu.pd()
                tu.right(90)
                flower()
                tu.left(90)
                tu.pu()
                t=tu.heading()
                tu.setheading(s)
                tu.backward(x)
                tu.setheading(t)
            tu.penup()
            tu.backward(k) 
        

        tree函数用于画出一棵树。参数n表示树干的级数,k表示树干的长度。在函数中,先将turtle设置为下笔状态、设置颜色和笔尺寸,并绘制树干。如果n>0,则用随机数生成分支的角度、长度和随机缩放系数,然后右转角度r,递归调用tree函数绘制右侧分支,左转角度l+r,递归调用tree函数绘制左侧分支,最后右转角度l还原角度。若n=0,代表树干到顶了,需要绘制花瓣。绘制两个花朵,之间的距离和之后后退的距离通过随机数生成。之后将turtle设置为抬笔状态,退回树干的起始位置,以准备绘制另一棵树。

        1. 设置画布
        tu.setup(800,480)
        tu.bgcolor("lavenderblush") 
        tu.hideturtle()  
        tu.tracer(0)
        

        这段代码对画布进行初始化设置,包括画布的大小、背景颜色,以及turtle的初始状态和绘图速度。

        1. 绘制树和花朵
        tu.penup()  
        tu.goto(0,-150)
        tu.pendown()
        tu.left(90)  
        tree(12,50)
        for i in range(99):
            tu.penup()
            tu.goto(ra.randint(-150,150),ra.randint(-150,0))
            tu.pendown()
            flower()
        

        这段代码调用了tree函数来绘制一棵12级的树,以及其中的花朵。之后,绘制99个随机位置和大小的花朵。

        1. 完成绘图
        tu.done()
        

        最后用done函数表示绘图结束。

        2.5 樱花林

        一棵樱花树怎么够呢,合理运用循环语句,准备一场樱花林送给她吧!

        Python樱花树

        Python樱花树

        for i in range(20):
            tu.penup()  
            tu.goto(ra.randint(-300,300),ra.randint(-150,0))
            tu.pendown()
            tu.left(90)  
            tree(8,30)
            tu.setheading(0)
            ……
        

        完整代码

        完整代码在这里哦:https://want595.blog.csdn.net/article/details/128700178

        尾声

        小伙伴们咱们下期见喔!

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]