乐趣区

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

【浏览全文】

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

对于 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()

以上就是樱花树的全副绘制过程了,残缺的代码块文件请在公众号内回复 ’1001’ 获取,间接运行即可。

【往期精彩】

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

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

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

python 做一个微型美颜图片处理器,十行代码即可实现 …

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

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

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

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

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

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

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

有了 jmespath,解决 python 中的 json 数据就变成了一种享受 …

退出移动版