【案例】用 turtle 绘制一个月饼
文章目录
- 环境准备
- 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)为例。
安装过程很简单,双击安装包
一直点击继续即可。
然后设置 python
和 pip
两个命令指向 python3.10.6
和 pip3.10
,这样做的目的就是改变系统上主要使用的 Python 的版本,这样在命令行中输入 Python
就会显示如下内容:
在命令行中查看已经安装的 Pyhton 包:
那么,到底是怎么实现的呢?在家目录下(比如:/Users/zhangjiaming
),创建两个文件(touch .zshrc
、touch 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()
月饼主体
我们的月饼分为以下几个部分:
最外侧花边
内侧花边
圆形
矩形
中心花瓣
文字
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 绘制一个月饼相关推荐
- Python——用turtle画一个月饼
今天是中秋节,首先在这里祝大家中秋快乐!那么提到中秋,我们首先想到的当然是香甜的月饼,所以我今天就在这里画一个月饼送给大家. 那么 要用Python画图,我们必须掌握并运用Turtle库,这个可以自己 ...
- 小猪佩奇python_「小猪佩奇头像」使用python中turtle绘制一个小猪佩奇的头像 - seo实验室...
小猪佩奇头像 之前一直被佩奇的预告片刷屏,就想着用Python中的turtle模块来自己绘制一个海报目前完成了一个头,代码如下:之后会更新整幅图from turtle import * def eye ...
- 使用Python+turtle绘制同心圆
使用Python+turtle绘制同心圆 问题描述:数学定义上是指:同一平面上同一圆心而半径不同的圆.简单来说就是:圆心相同半径不同的圆,如果几个圆的圆心是同一点,那么这几个圆就叫做同心圆. 本文使用 ...
- python绘制同心圆代码_使用Python+turtle绘制同心圆
问题描述:数学定义上是指:同一平面上同一圆心而半径不同的圆.简单来说就是:圆心相同半径不同的圆,如果几个圆的圆心是同一点,那么这几个圆就叫做同心圆. 本文使用turtle绘制一个类似"箭靶& ...
- python中用turtle绘制同心圆_使用Python+turtle绘制同心圆
原博文 2019-03-13 21:54 − 问题描述:数学定义上是指:同一平面上同一圆心而半径不同的圆.简单来说就是:圆心相同半径不同的圆,如果几个圆的圆心是同一点,那么这几个圆就叫做同心圆. 本文 ...
- python怎么画小海龟_Python 海龟 turtle 画图实战任务(一):让小海龟留下Z字形的足迹以及绘制一个小于号<...
使用 turtle 模块,常规的结束语句 ==> turtle.done()/turtle.mainloop() 示例代码如下: # -*- coding: UTF-8 -*- "&q ...
- python基础教程:通过Turtle库在Python中绘制一个鼠年福鼠
这篇文章主要介绍了通过Turtle库在Python中绘制一个鼠年福鼠,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 turtle库是一个很经典的绘图库,其最初来自 ...
- python turtle 画老鼠_通过Turtle库在Python中绘制一个鼠年福鼠
turtle库是一个很经典的绘图库,其最初来自于1967年创造的logo编程语言,之后被Python编写放到了Python的内置模块中.网络上有很多借助于turtle绘制精美图像的案例.比如小猪佩奇. ...
- python中turtle画老虎_通过Turtle库在Python中绘制一个鼠年福鼠
turtle库是一个很经典的绘图库,其最初来自于1967年创造的logo编程语言,之后被Python编写放到了Python的内置模块中.网络上有很多借助于turtle绘制精美图像的案例.比如小猪佩奇. ...
最新文章
- The substring() Method in JDK 6 and JDK 7 (jdk6中的substring()会造成内存泄漏)
- MyEclipse8.5/8.6不能安装ADT
- STM32 HAL库--串口的DMA(发送、接收)和esp8266 wifi模组发送和接收封装函数
- android动画帧率_Android动画进阶—使用开源动画库nineoldandroids
- JavaScript实现按位的isPowerOfTwo算法(附完整源码)
- SAP Fiori Launchpad shell.handleGoHome() - home按钮的实现
- 操作系统--死锁避免(银行家算法)
- (并查集)小希的迷宫
- 女人要的安全感到的是什么?
- 计算机网络和综合布线的关系,浅谈计算机网络综合布线的合理性
- matlab u 上波浪线,波浪线如何居中,在excel中怎样输入在文字中部加波浪线
- 手变小是怎么回事_手指小太阳越来越小是怎么回事
- Windows下修改本机域名localhost
- cpu第几代计算机,怎么看cpu是几代的,来看看你的CPU是几代的?
- 详解网站源码是什么到底该怎么使用?
- mysql多对多关系的理解,由一对多看向多对多
- 电大专科《计算机网络》机考题库,电大专科计算机网络机考网考纸考题库及答案.doc...
- python钉钉机器人发送excel附件_python 钉钉机器人发送消息
- 微软crm 开发笔记 系统配置使用
- 如何成为一名全栈开发人员