Python 小技之繁花盛开

简介: Python 小技之繁花盛开

今天请各位读者朋友欣赏用 Python 实现的鲜花盛宴,你准备好了吗?90 行代码即可实现一棵美丽的鲜花盛开树。小编也是鲜花爱护协会者之一,但是想要看到美丽的花朵,得历经很多;对于知识的运用也是如此,需要不断吸收新知识,学习新技能,才能盛开出美丽的花朵。接下来就看看一棵迷人的花树是怎么实现的吧!


夏天的花


image.png


实现思路

实现思路主要是利用之前学过的 Python 绘图模块 Turtle,Turtle 详细学习课程请参考趣玩 Python 之绘制基本图形 再结合随机函数生成任意的一棵树,樱花树主要组成部分有树干和花瓣以及飘落的花瓣构成。


亭亭玉立的树干


绘画的树干使用了 Python 中的随机函数,这样每次生成的树干都是随机的,树干的选择也是随机设置参数进行调整。


示例图:


image.png


代码如下所示:


def cherryTree(branch, t):
    if branch > 4:
        # 枝干数
        if 7 <= branch <= 13:
            # 随机数生成
            if random.randint(0, 3) == 0:
                t.color('snow')  # 花瓣心的颜色
            else:
                t.color('pink')  #花瓣颜色
            # 填充的花瓣大小
            t.pensize( branch / 6)
        elif branch < 8:
            if random.randint(0, 2) == 0:
                t.color('snow')
            else:
                # 设置树叶颜色
                t.color('green')
            t.pensize(branch / 5)
        else:
            t.color('Peru')  # 树干颜色
            t.pensize(branch / 11)  #调整树干的粗细
        t.forward(branch)
        a = 1 * random.random()
        t.right(20 * a)
        b = 1 * random.random()
        cherryTree(branch - 10 * b, t)
        t.left(60 * a)
        cherryTree(branch - 10 * b, t)
        t.right(40 * a)
        t.up()
        t.backward(branch)
        t.down()


以上代码实现的是随机树干以及花瓣颜色、树叶的颜色填充,同时还调整了花瓣大小和树干粗细。使整个树干看起来更协调。


花瓣随风飘


赏花最美不过是花瓣随风飘落的场景,示例图:


image.png


代码实现:



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(75)
        # 向前移动
        t.forward(a)
        # 放下画笔
        t.down()
        # 设置花瓣颜色
        t.color('pink')  # 粉红色
         # 画个小圆当作花瓣
        t.circle(1)
        # 提起画笔
        t.up()
        # 画笔向后退
        t.backward(a)
        # 画笔向前行
        t.right(70)
        t.backward(b)


鲜花配文字

一棵盛开的鲜花树怎么能少得了合适的文案呢?这里我们再利用小海龟绘图将文字配上

代码如下:


def des_word():
    t.color('LightCoral') # 字体颜色设置
    t.hideturtle()
  #  t.goto(-50, -130)
    t.goto(-60,-170)
    t.pu()
    t.write('姹紫嫣红桃花笺,',move=False, align='center', font=('Arial', 20, 'normal'))
    t.pd()
    t.pu()
    #  t.goto(90, 130)
    t.goto(150,-170)
    t.write('繁花似锦为君妍', move=False, align='center', font=('Arial', 20, 'normal'))
    t.pd()


画笔样式调整


t = turtle.Turtle()
# 画布大小 获取到屏幕
w = turtle.Screen()
t.hideturtle()  # 隐藏画笔
t.getscreen().tracer(8, 0)  # 获取屏幕大小
w.screensize(bg='LightCyan')  # 设置屏幕背景颜色
t.left(80)
t.up()
t.backward(140)
t.down()
t.color('sienna')
cherryTree(50, t)
petal(300, t)


最终结果


image.png


至此,清风徐来,繁花已开!


总结


只要思想不滑坡,方法总比困难多!每个人都拥有发现美的眼睛,尽情的去发现各种美吧!今天的赏花序曲暂且落幕,望伙伴们幕后自行品鉴!

目录
相关文章
|
16天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
16天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
20天前
|
缓存 监控 Python
解密Python中的装饰器:优雅而强大的编程利器
Python中的装饰器是一种强大而又优雅的编程工具,它能够在不改变原有代码结构的情况下,为函数或类添加新的功能和行为。本文将深入解析Python装饰器的原理、用法和实际应用,帮助读者更好地理解和利用这一技术,提升代码的可维护性和可扩展性。
|
1天前
|
机器学习/深度学习 数据挖掘 API
pymc,一个灵活的的 Python 概率编程库!
pymc,一个灵活的的 Python 概率编程库!
4 1
|
1天前
|
人工智能 算法 调度
uvloop,一个强大的 Python 异步IO编程库!
uvloop,一个强大的 Python 异步IO编程库!
10 2
|
2天前
|
机器学习/深度学习 人工智能 数据可视化
Python:探索编程之美
Python:探索编程之美
9 0
|
2天前
|
机器学习/深度学习 人工智能 数据处理
Python编程的魅力与实践
Python编程的魅力与实践
|
3天前
|
SQL 关系型数据库 MySQL
第十三章 Python数据库编程
第十三章 Python数据库编程
|
3天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
9天前
|
安全 数据处理 开发者
《Python 简易速速上手小册》第7章:高级 Python 编程(2024 最新版)
《Python 简易速速上手小册》第7章:高级 Python 编程(2024 最新版)
19 1