中秋节快到了,别学Python了,进来排队领块月饼吧【纯手工哪种】!

简介: 本文二哥带领大家用Python画几个月饼~

一、准备

Python3

turtle模块

勤劳的小手

二、构思与绘图

找一块传统月饼为例:

51.png

绘制外表

想要画月饼,第一个我们能想到的就是圆形的外表,但是月饼的圆通常比较特殊,每个位置会有一个凸起的弧度$%&%$…(不知道如何形容)总结一下就是像花一样的形状。

代码如下

代码中的循环用于绘制小的弧线,最终弧线连接成花的形状,并且涂上颜色。

from turtle import *
# 隐藏海龟
hideturtle()
# 颜色模式
colormode(255)
pensize(2)
pencolor(0, 0, 0)
fillcolor(231, 162, 63)
begin_fill()
for i in range(12):
    if i == 5:
        p = pos()
    circle(30, 120)
    right(90)
end_fill()
mainloop()

实现结果如下

52.png

绘制阴影

为了让月饼显得立体一些,我们需要画出阴影的效果,对于阴影的实现,我们将月饼外表水平移动后换个颜色即可。


代码如下

整体思路和上述相同,我们更改颜色并将表面覆盖于阴影上即可。

# 隐藏画笔移动
penup()
fd(20)
pendown()
fillcolor(255, 166, 16)
begin_fill()
for i in range(12):
    circle(30, 120)
    right(90)
end_fill()

结果如下:

53.png

绘制文字

光绘制外表,必然显得空唠唠的,因此我们在月饼的中间添加四个文字来体现口味即可。


代码如下

我们直接使用turtle中的write功能进行文字绘制即可。

pencolor(204, 22, 58)
left(90)
fd(140)
left(90)
fd(140)
left(90)
fd(72)
p = pos()
write('伍仁', font=('Arial', 70, 'normal'))
fd(70)
write('月饼', font=('Arial', 70, 'normal'))
left(90)
fd(140)

结果如下

54.png

这样我们的月饼就做好了。

三、代码完善

不同的小伙伴想要不同颜色不同口味的月饼,因此二哥将代码改造成如下可以自定义的形式。


完整代码如下

from turtle import *
# 隐藏海龟
hideturtle()
# 颜色模式
colormode(255)
'''
函数说明:
pensize:画笔粗细
pencolor:画笔颜色
fillcolor:填充颜色
begin_fill:开始填充
fd:前进
circle:画圆
right:右转
end_fill():结束填充
'''
def MoonCake(bgcolor, mkcolor, wdcolor, words):
    '''
    参数说明:
    bgcolor: 背景颜色
    mkcolor: 月饼颜色
    wdcolor: 文字颜色
    words: 文字(4个字)
    '''
    pensize(2)
    pencolor(0, 0, 0)
    fillcolor(bgcolor)
    begin_fill()
    for i in range(12):
        if i == 5:
            p = pos()
        circle(30, 120)
        right(90)
    end_fill()
    penup()
    fd(20)
    pendown()
    fillcolor(mkcolor)
    begin_fill()
    for i in range(12):
        circle(30, 120)
        right(90)
    end_fill()
    pencolor(wdcolor)
    left(90)
    fd(140)
    left(90)
    fd(140)
    left(90)
    fd(72)
    p = pos()
    wd1 = words[0:2]
    wd2 = words[2:4]
    write(wd1, font=('Arial', 70, 'normal'))
    fd(70)
    write(wd2, font=('Arial', 70, 'normal'))
    left(90)
    fd(140)
# MoonCake((231, 162, 63), (255, 166, 16), (204, 22, 58), '五仁月饼')
MoonCake((97, 154, 195),(186, 204, 217) ,(17, 101, 154), '冰皮月饼')
mainloop()

55.png


相关文章
|
7月前
|
搜索推荐 Python
用Python给大家画个小月饼祝福
本文分享了关于中秋的主题,指出生活不仅是赶路,更要感受沿途的美好。尽管人们常想提前躲避拥堵,但假期出行依然人多。文中未提供文献分享,而是祝大家中秋国庆双节快乐,并附上了一段Python代码,用于绘制月饼图形,鼓励读者自定义设计。最后提到代码相对简单,适合个性化创作。
53 0
|
程序员 Python
中秋节之Python绘制许愿树和月饼(打开程序员世界的大门)
中秋节之Python绘制许愿树和月饼(打开程序员世界的大门)
301 0
|
5月前
|
算法 Python
深度剖析!Python中图的DFS与BFS遍历,让你的数据搜索快到飞起
【7月更文挑战第10天】在数据结构和算法中,图遍历是核心概念,Python支持DFS和BFS来探索图。DFS递归深入节点,利用栈,先访问深处;BFS使用队列,层次遍历,先访问最近节点。
156 1
|
5月前
|
存储 IDE 搜索推荐
解锁Python黑科技:字典树Trie,让你的数据检索快到飞起!
【7月更文挑战第21天】Trie树,又称前缀树,是高效字符串检索数据结构。在Python中,通过创建节点类`TrieNode`和树类`Trie`,实现插入、搜索和前缀匹配功能。应用包括自动补全、拼写检查、IP路由和数据压缩。使用Trie能提升数据处理性能。
91 0
|
5月前
|
语音技术 数据安全/隐私保护 Python
语音识别---数据输入(input语句),布尔类型和比较运算符,if语句的基本格式,Python通过空格缩进来判断代码块的归属关系,我要买票吗讲解?if_elif_else
语音识别---数据输入(input语句),布尔类型和比较运算符,if语句的基本格式,Python通过空格缩进来判断代码块的归属关系,我要买票吗讲解?if_elif_else
|
7月前
|
SQL 分布式计算 Python
2024年最新520节日快到了,教你用Python画动态爱心表白!_mac python 画心,2024年最新2024年大厂Python岗面试必问
2024年最新520节日快到了,教你用Python画动态爱心表白!_mac python 画心,2024年最新2024年大厂Python岗面试必问
2024年最新520节日快到了,教你用Python画动态爱心表白!_mac python 画心,2024年最新2024年大厂Python岗面试必问
|
7月前
|
Python
用Python给大家画个小月饼祝福
在拥堵的节日出行中,我们体会到生活不只是赶路,而是感受旅途。本文未分享文献,而是送上中秋祝福与一段Python代码,用turtle库绘制了一个精美的月饼图形,寓意双节快乐。代码中定义了`MoonCake`类,包含绘制月饼外形和纹理的方法,最后展示了一个带有"中秋节\n快乐吖"文字的月饼图像。鼓励读者自定义创新,享受编程的乐趣。
50 2
|
7月前
|
程序员 Shell 开发者
Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?
Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?
59 1
|
JavaScript Python
利用Python来实现动态吃月饼不过分吧!
利用Python来实现动态吃月饼不过分吧!
|
C语言 数据格式 Python
蓝桥杯-小朋友排队-python
蓝桥杯-小朋友排队-python
139 0
蓝桥杯-小朋友排队-python