又是樱花盛开的季节,使用小乌龟来画一颗樱花树吧

【阅读全文】

后唐李煜曾说道,樱花落尽春将困,秋千架下归时。漏暗斜月迟迟,花在枝。樱花落尽的时候春天也将过去了,秋千架下归去时。天上的斜月姗姗来迟,花还在枝头。

file

关于python画图相关的,我们一直使用的是turtle来画,用专业的非标准库来做专业的事儿。将需要使用到的内置库或者非标准库全部都导入到当前的代码块中。

from time import sleep  # 用于控制程序运行时的阻塞停顿
from turtle import *  # 绘图相关接口
import random  # 生成随机数

设置全局需要初始化的对象,以及相关的全局参数设置,这样就不用在后面每画一笔进行设置了。
但是画布上面有一个箭头一直无法消除,有知道的大佬烦请留言说一下解决办法,感激不尽!

tle = Turtle()  # 初始化小乌龟画笔对象
tle.hideturtle()  # 全局隐藏画笔
tle.clear()  # 清除屏幕
tle.speed(0)  # 设置画笔速度为0,也就是最快的画笔速度
scr = Screen()  # 初始化屏幕对象
getscreen().tracer(30, 0)  # 返回一个TurtleScreen类的绘图对象,并开启绘画,加速绘画过程
scr.screensize(bg='white')  # 设置背景颜色

开始绘制,设置开始时的画笔相关的属性或参数。

tle.left(90)
tle.up()
tle.backward(150)
tle.down()
tle.color('sienna')

接下来是编写两个函数,一个是用于生成树枝/树干并在对应的树枝旁边画上樱花。另一个则是在樱花树的地上铺满掉落的樱花,这样的思路来源于CSDN博客平台,向大佬递茶!

编写画樱花树的树枝/树干部分/树枝樱花的函数draw_branch_flower。

def draw_branch_flower(len):
    '''
    绘制树枝/花函数
    :param len: 树枝长度
    :return:
    '''
    sleep(0.0005)
    if len > 3:
        if 8 <= len <= 12:
            if random.randint(0, 2) == 0:
                tle.color('snow')
            else:
                tle.color('lightcoral')
            tle.pensize(len / 3)
        elif len < 8:
            if random.randint(0, 1) == 0:
                tle.color('snow')
            else:
                tle.color('lightcoral')
            tle.pensize(len / 2)
        else:
            tle.color('sienna')
            tle.pensize(len / 10)
        tle.forward(len)
        a = 1.5 * random.random()
        tle.right(20 * a)
        b = 1.5 * random.random()
        draw_branch_flower(len - 10 * b)
        tle.left(40 * a)
        draw_branch_flower(len - 10 * b)
        tle.right(20 * a)
        tle.up()
        tle.backward(len)
        tle.down()

编写画樱花树旁边的地上的花瓣函数draw_ground_flower。

def draw_ground_flower(flower_num):
    '''
    绘制地上掉落的花瓣
    :param flower_num: 花瓣数量
    :return:
    '''
    for i in range(flower_num):
        a = 200 - 400 * random.random()
        b = 10 - 20 * random.random()
        tle.up()
        tle.forward(b)
        tle.left(90)
        tle.forward(a)
        tle.down()
        tle.color('lightcoral')
        tle.circle(1)
        tle.up()
        tle.backward(a)
        tle.right(90)
        tle.backward(b)

调用樱花树相关的绘图函数,快速完成绘图过程。

draw_branch_flower(60)
draw_ground_flower(200)

使用exitonclick函数保持在绘画完成时,窗口不会直接关闭。

scr.exitonclick()

file

以上就是樱花树的全部绘制过程了,完整的代码块文件请在公众号内回复'1001'获取,直接运行即可。

file

【往期精彩】

Python 读取PDF文件为文本字符并转换为音频...

python 获取最新房价信息-以北京房价为例

办公自动化:Image图片转换成PDF文档存储...

python做一个微型美颜图片处理器,十行代码即可完成...

用python做一个文本翻译器,自动将中文翻译成英文,超方便的!

小王,给这2000个客户发一下节日祝福的邮件...

python 一行命令开启网络间的文件共享...

PyQt5 批量删除 Excel 重复数据,多个文件、自定义重复项一键删除...

再见XShell,这款国人开源的终端命令行工具更nice!

python 表情包下载器,轻松下载上万个表情包、斗图不用愁...

Python 自动清理电脑垃圾文件,一键启动即可...

有了jmespath,处理python中的json数据就变成了一种享受...

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:又是樱花盛开的季节,使用小乌龟来画一颗樱花树吧 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • python多线程同步售票系统解决思路

    解决问题场景:假如剩余1000张电影票需要售卖,同时有10家电影App来售卖这1000张电影票。主要的逻辑实现过程是什么,要求使用python技术栈进行解题? 【阅读全文】 1、分析过程 分析:主要信息点是10家App平台同时售卖1000张电影票。此时,可以使用10个python线程来作为10家App平台,同时售卖必须保证电影票数量的同步,比如A平台卖出了一…

    2023年4月2日
    00
  • python-turtle绘制雪容融,已打包成exe可直接运行

    之前我们放出了冰墩墩绘制的源代码,雪容融的绘制却是一直没有。今天在逛论坛的时候终于发现有大佬写出来了,给大佬递茶!先来看看绘制的效果如何,个人觉得还是很惟妙惟肖的,哈哈哈~ 阅读全文 由于本文主要是通过图片的方式来展示代码块的实现过程的,需要完整源代码请前往文末查看源代码的获取方式。 话不多说,我们直接进入主题,说明一下我们改造以后的源代码,绘图的非标准库这…

    2023年4月2日
    00
  • 以后字符串中的字符提取校验就用这个了,效果不错!

    众所周知,python之所以很方便在一定程度上是因为随时都可能有人又创作了一个好用又方便的python非标准库。 【阅读全文】 正好有一个小需求需要校验一个python字符串中是否存在某种类型的字符,需求其实不难但是自己写的话又要耗时费力,可能还存在BUG需要测试。 于是想找找看有没有大佬已经实现这样的python非标准库,还真给找到了就是-txdpy,先安…

    Python开发 2023年4月2日
    00
  • 吐血整理python数据分析利器pandas的八个生命周期!

    这里从八个pandas的数据处理生命周期,整理汇总出pandas框架在整个数据处理过程中都是如何处理数据的。 【阅读全文】 也就是从pandas的数据表对象以及数据汇总、数据统计等等直到数据导出的八个处理过程来完成pandas使用的汇总处理。 首先,需要准备好将python非标准库导入进来,除了pandas之外一般伴随数据分析处理使用的还有numpy科学计算…

    Python开发 2023年4月2日
    00
  • 如何将多张图片合成mp4视频格式,并加入背景音乐…

    【阅读全文】 实现的思路:将准备好的图片通过opencv读取出来,并将其设置好帧数等参数后合成为无声视频。最后通过moviepy编辑视频将背景音乐加入到视频中。 开始之前还是需要说明一下非标准库的来源,因为有些库的名称和需要导入模块的名称不一定就是一样的。 import os # python标准库,不需要安装,用于系统文件操作相关 import cv2 #…

    2023年4月2日
    00
  • python做了个自动关机工具,再也不会耽误我下班啦

    上班族经常会遇到这样情况,着急下班结果将关机误点成重启,或者临近下班又通知开会,开完会已经迟了还要去给电脑关机。 【阅读全文】 今天使用PyQt5做了个自动关机的小工具,设置好关机时间然后直接提交即可,下班就可以直接走人了。 有直接需要.exe可执行应用的话,直接到文末处获取下载链接! 自动关机小工具也支持了清除已经设置好的关机时间,防止已经设置好了关机时间…

    2023年4月2日
    00
  • python 本地音乐播放器制作过程

    制作这个播放器的目的是为了将下载下来的mp3文件进行随机或是顺序的播放。选择需要播放的音乐的路径,选择播放方式,经过测试可以完美的播放本地音乐。 【阅读全文】 在开始之前介绍一个免费下载mp3音乐的网站,有需要的可以下载自己喜欢的音乐。当然有各大音乐平台会员的大佬就不需要了。 http://music.y444.cn/#/ 缺少音乐素材的可以去免费下载即可,…

    2023年4月2日
    00
  • python 自定义异常/raise关键字抛出异常

    在编程过程中合理的使用异常可以使得程序正常的执行。有直接抛出异常的形式,也能通过捕获异常加入异常时的业务逻辑处理。 【阅读全文】 创建自定义异常类案例 class MyException(Exception): def __init__(self, msg): ”’ :param msg: 异常信息 ”’ self.msg = msg 使用raise关键…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部