中秋节到了,祝大家中秋节快乐!用 Python 画个月饼,给大家助助兴。

效果图

依赖项

pip install numpy
pip install matplotlib

源代码

需要下载字体文件 Alibaba-PuHuiTi-Medium.ttf,回复「月饼」获取。

from numpy import sin, cos, pi
import matplotlib.pyplot as pltfrom matplotlib.patches import Arc, Circle, Wedge
from matplotlib.font_manager import FontPropertieslength = 20
R = 3**0.5*length/(3**0.5*cos(pi/12)-sin(pi/12))
r = 2*sin(pi/12)*R/3**0.5arc1 = Arc([0, length], width=2*r, height=2*r,angle=0, theta1=30, theta2=150, ec='orange', linewidth=4)  ##ec为线条颜色,可以自由替换arc2 = Arc([-length/2, length/2*3**0.5], width=2*r, height=2*r,angle=0, theta1=60, theta2=180, ec='orange', linewidth=4)
arc3 = Arc([-length/2*3**0.5, length/2], width=2*r, height=2*r,angle=0, theta1=90, theta2=210, ec='orange', linewidth=4)
arc4 = Arc([-length, 0], width=2*r, height=2*r, angle=0, theta1=120, theta2=240, ec='orange', linewidth=4)
arc5 = Arc([-length/2*3**0.5, -length/2], width=2*r, height=2*r,angle=0, theta1=150, theta2=270, ec='orange', linewidth=4)
arc6 = Arc([-length/2, -length/2*3**0.5], width=2*r, height=2*r,angle=0, theta1=180, theta2=300, ec='orange', linewidth=4)
arc7 = Arc([0, -length], width=2*r, height=2*r, angle=0, theta1=210, theta2=330, ec='orange', linewidth=4)
arc8 = Arc([length/2, -length/2*3**0.5], width=2*r, height=2*r,angle=0, theta1=240, theta2=360, ec='orange', linewidth=4)
arc9 = Arc([length/2*3**0.5, -length/2], width=2*r, height=2*r,angle=0, theta1=270, theta2=390, ec='orange', linewidth=4)
arc10 = Arc([length, 0], width=2*r, height=2*r, angle=0, theta1=300, theta2=420, ec='orange', linewidth=4)
arc11 = Arc([length/2*3**0.5, length/2], width=2*r, height=2*r,angle=0, theta1=330, theta2=450, ec='orange', linewidth=4)
arc12 = Arc([length/2, length/2*3**0.5], width=2*r, height=2*r,angle=0, theta1=0, theta2=120, ec='orange', linewidth=4)circle = Circle((0,0), R, ec='orange', fc='white', linewidth=4) ##ec为线条颜色,fc为填充颜色,可以自由替换wedge1 = Wedge([-2, 2], R-5, 90, 180,ec='orange', fc=r'white', linewidth=4) ##ec为线条颜色,fc为填充颜色,可以自由替换wedge2 = Wedge([-5, 5], R-12, 90, 180, ec='orange',fc=r'white', linewidth=4)
wedge3 = Wedge([-2, -2], R-5, 180, 270, ec='orange',fc=r'white', linewidth=4)
wedge4 = Wedge([-5, -5], R-12, 180, 270, ec='orange',fc=r'white', linewidth=4)
wedge5 = Wedge([2, -2], R-5, 270, 360, ec='orange',fc=r'white', linewidth=4)
wedge6 = Wedge([5, -5], R-12, 270, 360, ec='orange',fc=r'white', linewidth=4)
wedge7 = Wedge([2, 2], R-5, 0, 90, ec='orange',fc=r'white', linewidth=4)
wedge8 = Wedge([5, 5], R-12, 0, 90, ec='orange',fc=r'white', linewidth=4)art_list = [arc1, arc2, arc3, arc4, arc5, arc6, arc7, arc8, arc9, arc10, arc11, arc12]
art_list.extend([circle, wedge1, wedge2, wedge3, wedge4, wedge5, wedge6, wedge7, wedge8])
fig, ax = plt.subplots(figsize=(8, 8))
ax.set_aspect('equal')
for a in art_list:ax.add_patch(a)plt.axis('off')
font_set = FontProperties(fname=r"Alibaba-PuHuiTi-Medium.ttf", size=12)  ##可以自由下载字体使用
plt.text(-15.5, -2.5, '中秋快乐', bbox=dict(boxstyle='square', fc="w", ec='orange', linewidth=4), fontproperties=font_set,fontsize=50,color='orange')  ##ec为线条颜色,color为字体颜色,可以自由替换
plt.text(-25, -33, '但愿人长久,千里共婵娟', fontproperties=font_set, fontsize=30, color='#aa4a30')
plt.ylim([-35, 35])
plt.xlim([-35, 35])plt.show()

最后

画图其实就是各种数学计算、圆形曲线的计算。如果想看更多月饼的画法,公众号「Python七号」回复「月饼」。

用 Python 画个月饼,给大家助助兴相关推荐

  1. Python画简单月饼(使用turtle)

    学习也要"逢其时". 今天是2021年9月21日,中秋节,准备用python画个月饼,看了很多资料后来选了一个简单的月饼,参考的原网址找不到了,感谢这位大神. 第一步:用函数说明画 ...

  2. python画中秋月饼,用turtle海龟库画中秋月饼

    本python画月饼的代码封装比较灵活,可以自由调用,不懂的地方可以留言交流 2022新录制的绘制视频,祝大家中秋快乐. https://www.bilibili.com/video/BV1DP411 ...

  3. Python——用turtle画一个月饼

    今天是中秋节,首先在这里祝大家中秋快乐!那么提到中秋,我们首先想到的当然是香甜的月饼,所以我今天就在这里画一个月饼送给大家. 那么 要用Python画图,我们必须掌握并运用Turtle库,这个可以自己 ...

  4. python绘制回形纹_用python画百变风味月饼

    举头望明月,低头思故乡,不知道为什么,现在总是对儿时的事有感而发,回不到的过去,唯有珍惜当下,中秋快乐. 1.首先我们需要导入画图和数据计算的相关库. import numpy as np from ...

  5. python画中秋的月亮_Python画月饼,云上过中秋,天池Python入门案例系列赛开启

    原标题:Python画月饼,云上过中秋,天池Python入门案例系列赛开启 阿里云天池推出了一个Python入门案例系列教程,在此之前他们还推出了一个Python基础训练营. 在天池龙珠计划Pytho ...

  6. 用python画百变风味月饼

    举头望明月,低头思故乡,不知道为什么,现在总是对儿时的事有感而发,回不到的过去,唯有珍惜当下,中秋快乐. 1.首先我们需要导入画图和数据计算的相关库. // An highlighted blocki ...

  7. 中秋节到了我给大家用python做一个月饼

    明天就是八月十五了,有迎来了一年一度的中秋节,在我国大部分地区,中秋节是仅次于春节的传统节日,象征着团员安康.在这天,天上的月亮会格外的圆,我们吃到嘴里的月饼也比平常的要甜. 大家都知道月饼的种类有很 ...

  8. python怎么画人像_教你如何用Python画出心目中的自己

    原标题:教你如何用Python画出心目中的自己 引言:人脸图像的生成在各个行业有着重要应用,例如刑事调查.人物设计.教育培训等.然而一幅逼真的人脸肖像,对于职业画家也要至少数小时才能绘制出来:对于从未 ...

  9. python画画用哪个软件_如何用python画韦恩图? 使用python的tutul工具,画一朵雏菊花...

    使用python的tutul工具,画一朵雏菊花 如何用python画韦恩图?不管什么时候,给心留一点空间.人生一世,不用什么都要去争,不是什么都要去抢,欲望少一点,满足多一点,这样才会活得潇洒一点,人 ...

最新文章

  1. 网络服务-RSYNC
  2. 浙大绘制首个地球微生物“社会关系”网络
  3. jQueryDOM操作
  4. ot协议是什么_OT的完整形式是什么?
  5. 惠普企业(HPE)是否免不了最终被关停的命?
  6. GDAL读取jpg文件中GPS坐标信息
  7. noapic和acpi=off能帮我做到什么?
  8. 谷歌地球尝试验证时检测到错误_验证码为何越来越难了?
  9. linux vi脚本,用VIM编写脚本
  10. 「微信同声传译」小程序插件:快速实现语音转文字、文本翻译、语音合成等能力
  11. 服务器80端口找不到,如何查询服务器80端口被关闭
  12. java人工智能开源项目_人工生命——一个用代码模拟生命进化的人工智能开源项目...
  13. [导入]中国民营企业500强
  14. rt-thread通过spi连接W25Q32后无法读取ID
  15. 项管行知03--项目类型
  16. Mac idea打开项目Java文件和resources文件都被标记了resources类型
  17. 阿里云邮箱登录日志中有异地IP登录是怎么回事?该怎么办?
  18. nasm 用xmm寄存器做矩阵相加溢出了如何处理?
  19. border-image-slice
  20. lib和lib64的区别

热门文章

  1. 安装老版本的Pytorch
  2. dtw-package(使用R语言应用DTW)
  3. Sigmoid信念网络(SBN)
  4. 支付宝支付成功异步回调验签以及注意事项(附源码)
  5. 网站日志在哪里看?编写日志有什么技巧?
  6. crm系统服务器端,安装 Microsoft Dynamics CRM 前端服务器和后端服务器角色
  7. Map里的常见方法及遍历
  8. 改变不了的历史,冲不破的效应
  9. vue + router 权限管理 不同角色显示不同路由
  10. php服务软件安装?宝塔服务器配置搭建一键完成