✨ Python入门 ✨ 3️⃣ 画一个大太阳 ☀️,甚至还能画个蜡笔小❤️
【摘要】 Python还能画画,哈哈,我画了一个☀️?还有蜡笔小新?
前言
上一篇写了个温度转换的小程序,颇有点小成就感。听大佬说,Python还能画图,我就虚心请教了一下,原来是用一个☝🏻函数(海龟绘图):turtle — Turtle graphics。
于是,我跟教练说:这次我想画一个大太阳☀️~
加油💪🏻ヾ(◍°∇°◍)ノ゙
你没看错,就是这个大太阳!!!
正文开始
在开始之前,先简单介绍下海龟绘图函数吧!
下面列一下本文可能需要用到的一些方法:
setup() 设置
showturtle() | st() 显示海龟
pensize() | width() 画笔粗细
pencolor() 画笔颜色
penup() | pu() | up() 画笔抬起
pendown() | pd() | down() 画笔落下
goto() | setpos() | setposition() 前往/定位
setheading() | seth() 设置朝向
color() 颜色
forward() | fd() 前进
left() | lt() 左转
begin_fill() 开始填充
end_fill() 结束填充
circle() 画圆
exitonclick() 当点击时退出
大致了解一下就行,开始实战吧!
1 创建项目文件
第一步☝🏻,自然是打开PyCharm,麻利的先创建一个新项目,再创建一个Python文件😌:
2 理清逻辑
不管编写什么程序前,我的习惯:逻辑一定要先缕清楚!!!
由于海龟绘图函数只能一笔画完,因此可能无法达到 ☀️ 的展示效果;所以我粗略手画了一下:
☀️ 一眼看去,大概组成:1个圆 和 8个 等边三角形。所以,大概逻辑就是:
- 第一步: 把这个图形切割为8个部分,每个部分如下图所示:
- 第二步: 用海龟绘图画出这个部分,分为一个等边三角形和一个弧线:
from turtle import *
# 画笔抬起
pu()
# 定位开始位置
goto(-30, 100)
# 画笔落下
pd()
# 设置朝向
seth(0)
pencolor('#EEC211')
# 前进80步
fd(80)
# 向左120度
lt(120)
# 前进80步
fd(80)
# 向左120度
lt(120)
# 前进80步
fd(80)
# 向左143度
lt(143)
# 向下画半径为100的弧线 68步
circle(-100, 68)
# 窗口手动点击关闭
exitonclick()
运行后效果如下:
- 第三步: for循环重复执行8次,拼接出完整太阳形状:
from turtle import *
# 画笔抬起
pu()
# 定位开始位置
goto(-30, 100)
# 画笔落下
pd()
# 设置朝向
seth(0)
pencolor('#EEC211')
# 循环8次
for i in range(8):
# 前进80步
fd(80)
# 向左120度
lt(120)
# 前进80步
fd(80)
# 向左120度
lt(120)
# 前进80步
fd(80)
# 向左143度
lt(143)
# 向下画半径为100的弧线 68步
circle(-100, 68)
# 窗口手动点击关闭
exitonclick()
运行效果如下:
- 第四步: 给画好的图形上色
from turtle import *
# 画笔抬起
pu()
# 定位开始位置
goto(-30, 100)
# 画笔落下
pd()
# 设置朝向
seth(0)
pencolor('#EEC211')
# 设置颜色
color('#EEC211')
# 循环8次
for i in range(8):
# 开始填充颜色
begin_fill()
# 前进80步
fd(80)
# 向左120度
lt(120)
# 前进80步
fd(80)
# 向左120度
lt(120)
# 前进80步
fd(80)
# 向左143度
lt(143)
# 向下画半径为100的弧线 68步
circle(-100, 68)
# 结束填充
end_fill()
# 窗口手动点击关闭
exitonclick()
运行效果如下:
发现个小问题,中间部分没有填充颜色,得想个办法给它加上。
- 第五步: 中间部位填充颜色
讲一下大概思路,就是在中间部位再画一个圆,然后覆盖填充颜色即可。
# 中心部分上色
# 设置颜色
color('#EEC211')
begin_fill()
left(12)
circle(-145)
end_fill()
exitonclick()
运行效果如下所示:
- 最后一步: 整合代码,封装函数
# 画太阳
def drawSun():
for i in range(8):
# 开始填充颜色
begin_fill()
# 前进80步
fd(80)
# 向左120度
lt(120)
# 前进80步
fd(80)
# 向左120度
lt(120)
# 前进80步
fd(80)
# 向左143度
lt(143)
# 向下画半径为100的弧线 68步
circle(-100, 68)
# 结束填充
end_fill()
# 主程序
def main():
# 画笔颜色
pencolor('#EEC211')
# 画笔抬起
pu()
# 定位开始位置
goto(-20, 100)
# 画笔落下
pd()
# 设置朝向
seth(0)
# 设置颜色
color('#EEC211')
# 画太阳
drawSun()
# 中心部分上色
begin_fill()
left(12)
circle(-145)
end_fill()
exitonclick()
运行效果如下:
欧克,大功告成!✌️ 今日份的学习,就到这了,下期再见~ 👋
完整代码如下:
from turtle import *
def drawSun():
for i in range(8):
# 开始填充颜色
begin_fill()
# 前进80步
fd(80)
# 向左120度
lt(120)
# 前进80步
fd(80)
# 向左120度
lt(120)
# 前进80步
fd(80)
# 向左143度
lt(143)
# 向下画半径为100的弧线 68步
circle(-100, 68)
# 结束填充
end_fill()
def main():
# 画笔颜色
pencolor('#EEC211')
# 画笔抬起
pu()
# 定位开始位置
goto(-20, 100)
# 画笔落下
pd()
# 设置朝向
seth(0)
# 设置颜色
color('#EEC211')
# 画太阳
drawSun()
# 中心部分上色
begin_fill()
left(12)
circle(-145)
end_fill()
exitonclick()
main()
写在最后
不学不知道,一学吓一跳,原来Python不止可以爬虫,还能画图,真有趣,我还见过有朋友画 蜡笔小新 ,分享给朋友们看一下:
真有趣!!!真乃神人也~ 🙉
本次分享到此结束啦~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)