程序员「专属」食谱:用 Python “烘焙”中秋月饼
自古以来,月饼作为吉祥与团圆的象征,是中秋节必不可少的节日美食。它的形状意味着「团圆」,它的香气传递着「思念」。每一次品尝都寄托着深深的牵挂,每一次分享都传递着美好的情谊。
在这个特别节日到来之际,PieCloudDB 社区将为大家奉上一份「程序员」专属月饼制作「食谱」,手把手教大家如何用 Python 绘制一个独属于你的中秋月饼。
在制作月饼之前,需要准备好以下内容:
- Python:V3.10.4 或以上版本
- Turtle:V0.0.1
我们将使用 Turtle 来进行月饼的制作,Turtle 库是 Python 中常用的绘制图像的函数库,俗称海龟绘图,通过编写代码,指挥一只虚拟的"海龟"在一个画布上进行移动和转向,完成绘图。
在 Python 环境中导入所需的 Turtle 库后,我们的准备工作就完成啦~
import turtle as t
接下来,和我们一起动手制作月饼吧!制作过程将分为五步进行:
步骤 1:制作"饼皮"
首先,我们来制作月饼的"饼皮"。为了让这个特别的月饼更加美观,我们将"饼皮"分为橘色和白色两层,并在边缘处进行圆点装饰。
def Pattern(num,p_color,f_color,distance,radius): # 绘制外层的饼皮 t.speed(0) # 设置画笔速度 t.pensize(1) # 设置画笔粗细 t.pencolor(p_color) # 设置画笔颜色 for _ in range(num): t.penup() # 抬起画笔,移动时不进行绘制 t.left(360/num) # 向左旋转画笔方向 t.fillcolor(f_color) # 填充图形颜色 t.begin_fill() # 开始填充 t.forward(distance) # 向当前方向前进 t.pendown() # 放下画笔,进行绘制 t.circle(radius, 180) # 绘制一个圆 t.penup() t.goto(0, 0) # 将画笔移动至(0,0)点 t.left(180) t.end_fill() # 结束填充 def Draw_dot(num,color,distance,diameter): # 绘制装饰的圆点 t.speed(0) t.setheading(1.5*360/num) # 设置画笔初始角度 for _ in range(num): t.penup() t.left(360/num) t.forward(distance) t.pendown() t.dot(diameter,color) t.penup() t.goto(0,0)
步骤 2:预留"内馅"填充
"饼皮"准备好后,我们将在中间区域预留填充"月饼陷"的部位,并进行装饰。
def Draw_circle(radius,color): # 绘制中心圆 t.speed(0) t.setheading(0) t.goto(0, -radius) t.pendown() t.fillcolor(color) t.begin_fill() t.circle(radius,360) t.penup() t.end_fill() def Draw_texture(x,y,angle,color): # 绘制四周的花纹 t.speed(0) t.pensize(3) t.penup() t.goto(x, y) t.pendown() t.color(color) t.setheading(angle) t.forward(20) t.right(90) t.circle(-100, 30) t.penup() t.goto(x, y) t.pendown() t.setheading(angle) t.right(90) t.circle(-100, 40) t.left(90) t.forward(45) t.left(95) t.circle(190, 70) t.left(95) t.forward(45) t.left(90) t.circle(-100, 40) t.setheading(angle) t.forward(20) t.left(90) t.circle(100, 30) t.penup() t.home() # 画笔返回原点
步骤 3:填充"馅料"
这是"月饼"制作过程中最重要的一步。我们在预留区域,填充"馅料"------π。π 不仅仅是一个数学符号,它代表着永恒与无限,正如亲友间无尽的情感,无论相隔多远,心中的那份牵挂从未停歇。
def Draw_pi(): # 绘制OpenPie Logo图形 t.speed(10) t.penup() t.goto(0, 0) t.dot(260, "#cf2722") t.goto(-44, 24) t.pendown() ## 绘制图形π t.pencolor("white") t.fillcolor("white") t.begin_fill() t.circle(20, -90) t.setheading(0) t.forward(100) t.circle(-20, 90) t.setheading(-180) t.forward(20) t.setheading(-90) t.forward(50) t.circle(10, 90) t.forward(10) t.setheading(-90) t.forward(20) t.setheading(-180) t.forward(30) t.circle(-16, 90) t.forward(64) t.setheading(-180) t.forward(22) t.setheading(-90) t.forward(48) t.circle(-32, 90) t.setheading(90) t.forward(80) t.end_fill() ## 绘制π周围的两条白线 t.penup() t.goto(0, 130) t.pendown() t.pensize(3) t.setheading(-10) t.circle(-120, 188) t.penup() t.goto(0, -130) t.pendown() t.setheading(170) t.circle(-120, 188)
步骤 4:"裱"上文字
月饼即将完成啦!我们用笔触轻轻勾勒,将心中的祝福化作简洁而真挚的文字,每一笔、每一划,都承载着我们对家人的牵挂、对亲友的关怀和对未来的美好期许。
def Write(text,x,y,color,font,size): # 绘制文字 t.speed(3) t.penup() t.goto(x,y) t.pendown() t.pencolor(color) t.write(text, align="center", font=(font,size,"bold"))
步骤 5:"烘焙"出炉
铛铛,在为各个函数输入对应的参数后即可调用执行,这样我们的月饼🥮就大功告成啦!你学会了吗?
if __name__ == "__main__": # 调用定义的函数 ## 绘制外层的饼身 Pattern(20,"#dd6d47","#dd6d47",280,46) Pattern(20,"#dd6d47","white",240,40) ## 绘制装饰的圆点 Draw_dot(20,"#dd6d47",245,10) ## 绘制中心圆 Draw_circle(220,"#dd6d47") ## 绘制四周的花纹 Draw_texture(16,160,90,"white") Draw_texture(-160,16,180,"white") Draw_texture(-16,-160,270,"white") Draw_texture(160,-16,360,"white") ## 绘制图形π Draw_pi() ## 绘制文字 Write("中",-120,90,"white","Comic Sans MS",50) Write("秋",120,90,"white","Comic Sans MS",50) Write("快",-120,-150,"white","Comic Sans MS",50) Write("乐",120,-150,"white","Comic Sans MS",50) t.done() # 停止绘制,窗口不关闭
🎑 欢迎大家参考这份食谱,制作出你的「专属」月饼~ 也欢迎大家微信搜索pieclouddb加入我们的技术交流群。
最后,PieCloudDB 社区祝大家中秋节快乐!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
服务稳定性保障的五大误解
> 在线服务的稳定性保障一直是运维和技术部门的核心工作之一。但时至今日,这个方向实际仍然有很多基本的概念都没有对齐。今天这篇文章就罗列下那些混淆不清的概念,期望有一天大家沟通时不是鸡同鸭讲,各说各话。 误解一:服务可用性 听过很多技术分享,看过很多平台的承诺,上来都是讲我们的服务稳定性99.9xx%,但似乎都“忘记”了提供这个稳定性的具体算法和解读。如果没有明确的定义,这个数值其实毫无意义。 > 服务稳定性目标的算法并没有行业标准,Google SRE Book 中提到两种: 基于时间的可用性:可用性 = 系统正常运行时间 /(系统正常运行时间+停机时间) 合计可用性:可用性 = 成功请求数 / 总请求数 使用哪种统计算法很可能因业务的类型(电商服务、打车服务等)或服务的类型(请求类服务、存储类服务等)不同而不同,甚至因公司的传统和文化而不同。 而实际上,以上两种算法本身就存在很多不明确的地方。 如基于时间的可用性统计,哪部分时间适合算到停机时间里?服务还部分可用算不算?只影响了10%的用户算不算?如果只统计完全停机的时间,那即使是非常严重的事故也可能统计不到停机时间里,这...
- 下一篇
🔥🔥🔥超级 ORM 框架 mybatis-mp 预览版 1.6.8-rc 发布
官网 :https://mybatis-mp.cn 更新: 1: 增加sql buidler构建干预口,让你可以更好的扩展sql 为什么推荐 mybatis-mp ?: mybatis-mp 是一款超级强大的 ORM 框架 1:可多表 join(不再只能单表了) 2:良好 resultMap 结果映射能力(不怕映射错误了) 3:良好的扩展能力:orm+sql 模板 (让 ORM 框架不再死板,扩展性极强) 4:就算 xml 也不用再增加什么插件了,自带 xml 分页 5:强大的各种数据库适配,可在一套代码中 实现多个数据库适配;真正的 ORM hibernate 都做不到 6:极简的 api 设计,让开发者 不再迷糊 7:还很多很多独特优良的设计,只有前往体验,才能感受了;不相信可以试试!!! 1.单表 +@Fetch 注解 + fetchFilter 方法 @Data @ResultEntity(SysUser.class) public class SysUserVo { private Integer id; private String userName; ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启