文章目录

  • 环境准备
  • turtle 库
  • 源代码
    • 封装一个自己的函数
    • 月饼主体
    • 写一段文字
  • 最终效果

2022.9.10 既是中秋节又是教师节,Jia ming 在这里祝大家阖家团圆,中秋快乐,也祝天下的老师桃李满园,教师节快乐!这里为大家呈现上一个 Python 小项目 —— 使用 turtle 绘制月饼。

月。光辉,皎洁。耀乾坤,静空阔。圆满中秋,玩争诗哲。玉兔镝难穿,桂枝人共折。万象照乃无私,琼台岂遮君谒。抱琴对弹别鹤声,不得知音声不切。——【唐】李绅《赋月》

环境准备

macbook 运行环境准备

mac 默认 Python 版本为 3.8.x,在运行 turtle 时,会出现黑屏闪烁的情况。为了正常运行 turtle,我们需要安装更新的 Python 版本,这里以 Python 3.10.6-macos 11.pkg(提取码: yimf)为例。

安装过程很简单,双击安装包

一直点击继续即可。

然后设置 pythonpip 两个命令指向 python3.10.6pip3.10,这样做的目的就是改变系统上主要使用的 Python 的版本,这样在命令行中输入 Python 就会显示如下内容:

在命令行中查看已经安装的 Pyhton 包:

那么,到底是怎么实现的呢?在家目录下(比如:/Users/zhangjiaming),创建两个文件(touch .zshrctouch bash_profile),内容如下:

turtle 库

turtle 官网:https://pythonturtle.org

PythonTurtle致力于提供学习(或教授)Python编程语言软件开发的最低门槛方法。学生使用交互式Python shell(类似于空闲开发环境)并使用Python函数移动屏幕上显示的海龟。一个带插图的帮助屏幕向学生介绍Python编程的基础知识,同时演示如何移动海龟。

turtle 是一个十分方便的 Python 绘图库,只需要使用简单的过程方法,就可以绘制出许多有趣的图形。

turtle 模拟了用笔绘图的过程:

  • 落笔 —— turtle.pendown()
  • 起笔 —— turtle.penup()
  • 画直线 —— turtle.forward(xxx)
  • 笔的尺寸 —— turtle.pensize(xxx)
  • 向左转多少度 —— turtle.left(xxx)

让可爱的海龟动起来!Turtle库做出的简单动画,使Python无所不能 里面详细说了坐标系的问题。

源代码

封装一个自己的函数

就像是画画的时候一样,总有一个起笔——移动——落笔的过程,我们使用下面的函数来实现这三个步骤,否则,画笔会显示出画笔移动的轨迹。

def goto(x, y):turtle.penup()turtle.goto(x, y)turtle.pendown()

月饼主体

我们的月饼分为以下几个部分:

  1. 最外侧花边

  2. 内侧花边

  3. 圆形

  4. 矩形

  5. 中心花瓣

  6. 文字

def draw():# 最外侧花边turtle.pensize(20)goto(0, 0)turtle.color("#83572F") for _ in range(30):turtle.left(12)turtle.begin_fill()turtle.forward(200)turtle.circle(25, 180)turtle.goto(0, 0)turtle.left(180)turtle.end_fill()# 内侧花边goto(0, 0)turtle.color("#E1A43B") for _ in range(30):turtle.left(12)turtle.begin_fill()turtle.forward(180)turtle.circle(25, 180)turtle.goto(0, 0)turtle.left(180)turtle.end_fill()# 圆形goto(0, -180)turtle.color("#F2C54D") turtle.begin_fill()turtle.circle(180)turtle.end_fill()# 矩形x = 125y = 2*xturtle.pensize(15)turtle.color("#C97E2E") goto(-x, x)turtle.pensize(10)turtle.forward(y)goto(-x, x-y)turtle.forward(y)goto(-x, x)turtle.right(90)turtle.forward(y)goto(x, x)turtle.forward(y)# 中心花瓣goto(0, 0)turtle.pensize(10)turtle.color("#36210E") for _ in range(30):turtle.left(12)# turtle.begin_fill()turtle.forward(100)turtle.circle(25)turtle.goto(0, 0)

写一段文字

turtle 实现了绘制文字的函数,我们可以直接调用以实现文字效果。

def wirte():goto(200, -270) # 从哪里开始写turtle.color("black") # 画笔颜色turtle.write("祝:\n\n各位中秋节快乐,\n吉祥如意!\n\n    Jia ming", font=("Time",20,"bold")) # 书写内容、文字样式

完整代码:

import turtledef goto(x, y):turtle.penup()turtle.goto(x, y)turtle.pendown()def draw():turtle.pensize(20)goto(0, 0)turtle.color("#83572F") for _ in range(30):turtle.left(12)turtle.begin_fill()turtle.forward(200)turtle.circle(25, 180)turtle.goto(0, 0)turtle.left(180)turtle.end_fill()goto(0, 0)turtle.color("#E1A43B") for _ in range(30):turtle.left(12)turtle.begin_fill()turtle.forward(180)turtle.circle(25, 180)turtle.goto(0, 0)turtle.left(180)turtle.end_fill()goto(0, -180)turtle.color("#F2C54D") turtle.begin_fill()turtle.circle(180)turtle.end_fill()x = 125y = 2*xturtle.pensize(15)turtle.color("#C97E2E") goto(-x, x)turtle.pensize(10)turtle.forward(y)goto(-x, x-y)turtle.forward(y)goto(-x, x)turtle.right(90)turtle.forward(y)goto(x, x)turtle.forward(y)goto(0, 0)turtle.pensize(10)turtle.color("#36210E") for _ in range(30):turtle.left(12)# turtle.begin_fill()turtle.forward(100)turtle.circle(25)turtle.goto(0, 0)# turtle.left(180)# turtle.end_fill()def wirte():goto(200, -270)turtle.color("black")turtle.write("祝:\n\n各位中秋节快乐,\n吉祥如意!\n\n    Jia ming", font=("Time",20,"bold"))if __name__ == '__main__':turtle.speed(9000)turtle.hideturtle() # 隐藏笔头draw()wirte()turtle.done()

最终效果

turtle 绘制月饼

【案例】用 turtle 绘制一个月饼相关推荐

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

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

  2. 小猪佩奇python_「小猪佩奇头像」使用python中turtle绘制一个小猪佩奇的头像 - seo实验室...

    小猪佩奇头像 之前一直被佩奇的预告片刷屏,就想着用Python中的turtle模块来自己绘制一个海报目前完成了一个头,代码如下:之后会更新整幅图from turtle import * def eye ...

  3. 使用Python+turtle绘制同心圆

    使用Python+turtle绘制同心圆 问题描述:数学定义上是指:同一平面上同一圆心而半径不同的圆.简单来说就是:圆心相同半径不同的圆,如果几个圆的圆心是同一点,那么这几个圆就叫做同心圆. 本文使用 ...

  4. python绘制同心圆代码_使用Python+turtle绘制同心圆

    问题描述:数学定义上是指:同一平面上同一圆心而半径不同的圆.简单来说就是:圆心相同半径不同的圆,如果几个圆的圆心是同一点,那么这几个圆就叫做同心圆. 本文使用turtle绘制一个类似"箭靶& ...

  5. python中用turtle绘制同心圆_使用Python+turtle绘制同心圆

    原博文 2019-03-13 21:54 − 问题描述:数学定义上是指:同一平面上同一圆心而半径不同的圆.简单来说就是:圆心相同半径不同的圆,如果几个圆的圆心是同一点,那么这几个圆就叫做同心圆. 本文 ...

  6. python怎么画小海龟_Python 海龟 turtle 画图实战任务(一):让小海龟留下Z字形的足迹以及绘制一个小于号<...

    使用 turtle 模块,常规的结束语句 ==> turtle.done()/turtle.mainloop() 示例代码如下: # -*- coding: UTF-8 -*- "&q ...

  7. python基础教程:通过Turtle库在Python中绘制一个鼠年福鼠

    这篇文章主要介绍了通过Turtle库在Python中绘制一个鼠年福鼠,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 turtle库是一个很经典的绘图库,其最初来自 ...

  8. python turtle 画老鼠_通过Turtle库在Python中绘制一个鼠年福鼠

    turtle库是一个很经典的绘图库,其最初来自于1967年创造的logo编程语言,之后被Python编写放到了Python的内置模块中.网络上有很多借助于turtle绘制精美图像的案例.比如小猪佩奇. ...

  9. python中turtle画老虎_通过Turtle库在Python中绘制一个鼠年福鼠

    turtle库是一个很经典的绘图库,其最初来自于1967年创造的logo编程语言,之后被Python编写放到了Python的内置模块中.网络上有很多借助于turtle绘制精美图像的案例.比如小猪佩奇. ...

最新文章

  1. The substring() Method in JDK 6 and JDK 7 (jdk6中的substring()会造成内存泄漏)
  2. MyEclipse8.5/8.6不能安装ADT
  3. STM32 HAL库--串口的DMA(发送、接收)和esp8266 wifi模组发送和接收封装函数
  4. android动画帧率_Android动画进阶—使用开源动画库nineoldandroids
  5. JavaScript实现按位的isPowerOfTwo算法(附完整源码)
  6. SAP Fiori Launchpad shell.handleGoHome() - home按钮的实现
  7. 操作系统--死锁避免(银行家算法)
  8. (并查集)小希的迷宫
  9. 女人要的安全感到的是什么?
  10. 计算机网络和综合布线的关系,浅谈计算机网络综合布线的合理性
  11. matlab u 上波浪线,波浪线如何居中,在excel中怎样输入在文字中部加波浪线
  12. 手变小是怎么回事_手指小太阳越来越小是怎么回事
  13. Windows下修改本机域名localhost
  14. cpu第几代计算机,怎么看cpu是几代的,来看看你的CPU是几代的?
  15. 详解网站源码是什么到底该怎么使用?
  16. mysql多对多关系的理解,由一对多看向多对多
  17. 电大专科《计算机网络》机考题库,电大专科计算机网络机考网考纸考题库及答案.doc...
  18. python钉钉机器人发送excel附件_python 钉钉机器人发送消息
  19. 微软crm 开发笔记 系统配置使用
  20. 如何成为一名全栈开发人员

热门文章

  1. 程序员养生之道:Google 是如何鼓励员工多吃蔬菜的?
  2. 披荆斩棘,砥砺前行,我是新手奶爸,我仍笑如少年——小康师兄的2022年度总结
  3. java 生成pdf
  4. 【他来了】云顶之奕 手游账号注册!国服可玩!
  5. css svg做动图,用svg动态绘制图形
  6. Java之冒号的用法
  7. 成果分享:边缘智能视频预取和缓存机制
  8. 一行Python代码去除照片背景
  9. zbrush是个什么神仙软件?学会zbrush可以做什么?
  10. 过流保护的几种实现方式