Python Turtle绘图 [难度2星]:彩虹(分五步完成)
我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜。
一些让我心动过的案例,分享给大家,也珍藏给自己。
——Python教学路上的爬行者
彩虹是那样的美丽动人,从地的这一端跨到那一端,犹如花朵编织的环带,缀在天蓝的裙襟上。红、橙、黄、绿、青、蓝、紫,多么迷人。它把世界上一切柔和的颜色凝固在天空中。仿佛把我们带进了一个童话般的世界,灿烂夺目。
本案例将分五步来完成下图彩虹的绘制。
难度:★★☆☆☆☆
第1步:根据背景图片定画布
【重难点突破】
1. 设置画布大小方法:
turtle.setup(839,612)
# 设置窗口的宽为839像素,高为612像素
只要单击选中图片“蓝天白云”,下面的状态栏就会显示该图片的尺寸。如下图,这张图片的尺寸是839×612,即宽是839像素,高是612像素。
2. 设置背景图片方法:
turtle.bgpic("蓝天白云.gif")
# 将图片“蓝天白云”设置为背景
敲重点:
1. 背景图片必须是gif或png格式
2. 图片必须和代码文件在同一个文件夹里
3. 图片名称一定要用双引号括起来
4. 图片名称必须加格式后缀
这是本案例用到的背景图片 来源于昵图网
3. 如何快速将JPG图片转换为GIF格式?
在网页上右键另存图片时无法直接保存为GIF格式。可以使用微信、QQ、钉钉等聊天框的截图工具,截图后再选择gif格式保存。
第2步:确定彩虹七色数值
【重难点突破】
1. 到底是“红橙黄绿青蓝紫”,还是“红橙黄绿蓝靛紫”?
学生经常会这样问。我在网上查了好久,搜到了一个比较合理的解释。
在文学中常说“红(赤)橙黄绿青蓝紫”,但是在科学研究中的严谨说法是“红橙黄绿蓝靛紫”。
2. “彩虹”百度百科
彩虹,又称天弓(客家话)、天虹、绛等,简称虹,是气象中的一种光学现象。
当太阳光照射到半空中的水滴,光线被折射及反射,在天空上形成拱形的七彩光谱,由外圈至内圈呈红、橙、黄、绿、蓝、靛、紫 七种颜色。
事实上彩虹有无数种颜色,比如,在红色和橙色之间还有许多种细微差别的颜色,但为了简便起见,所以只用七种颜色作为区别。
3. 彩虹七色十六进制数值
在网上提供的彩虹七色的十六进制数值,基本上都是“红橙黄绿青蓝紫”。
红色 #FF0000
橙色 #FF7F00
黄色 #FFFF00
绿色 #00FF00
青色 #00FFFF
蓝色 #0000FF
紫色 #8B00FF
第3步:确定弧的半径角度
【重难点突破】
要想画出彩虹一样的圆弧,需要先调整海龟的头部朝向,然后再使用circle(半径,角度)来实现。
举例1:
让海龟的头部向上,即setheading(90)
①可用circle(正半径,正角度)从右往左画弧,
②也可用circle(负半径,正角度)从左往右画弧。
举例2:
让海龟的头部向下,即setheading(-90)
③可用circle(正半径,负角度)从左往右画弧,
④也可用circle(负半径,负角度)从右往左画弧。
本案例中使用的是第1种方法。
试一试下面两块代码画出的图形是一模一样的:
若使用第2、3种方法,海龟goto(x,y)的坐标需要重新设置。
第4步:试画两色圆弧
【重难点突破】
画彩虹时,圆弧的半径和画笔粗细的关系如下:
【代码分享】
思考一下,如何将重复的代码改为循环?
# 彩虹(画两色圆弧)
import turtle
turtle.pensize(30)# ①画红圈
turtle.penup()
turtle.setheading(90) # 让海龟头部向上
turtle.goto(260,0) # 海龟要移动到圆的右侧切点处,即x值等于半径长度
turtle.pendown()turtle.pencolor("#ff0000")
turtle.circle(260,180) # 画半径为280,度数为180的圆弧# ②画橙圈
turtle.penup()
turtle.setheading(90) # 重新让海龟头部向上
turtle.goto(230,0) # 海龟要移动到圆的右侧切点处,即x值等于半径长度
turtle.pendown()turtle.pencolor("#ff7f00")
turtle.circle(230,180) # 画半径为270,度数为180的圆弧。270是280减去画笔粗细得来的。
第5步:加入循环画七色弧
【最终效果预览】
【代码分享】
画彩虹的七条圆弧时,需要根据画布大小,重新设置画笔的粗细和圆弧的半径数值。数值虽然改变了,但是两者之间的关系没有变。
r=r-size+1
# turtle案例:彩虹
# ① 程序初始化设置
import turtle
turtle.setup(839,612) # 根据图片尺寸,设置画布大小
#turtle.bgcolor('#92e8ff') # 设置背景颜色为浅蓝色
turtle.bgpic("蓝天白云.gif") # 设置图片为背景
turtle.speed(1) # 设置海龟绘图速度
turtle.delay(0) # 设置海龟绘图的延迟时间# ② 变量初始化设置
r=330 # 画圆的半径
size=10 # 设置圆弧的粗细
colors=["#ff0000","#ff7f00","#ffff00","#00ff00","#00ffff","#0000ff","#8b00ff"] # 彩虹七色列表红橙黄绿蓝靛紫# ③ 画彩虹
for i in range(7): # 画7条圆弧# 画1个圆弧turtle.penup()turtle.setheading(90) # 海龟头部向上turtle.goto(r,-50) # 海龟从圆的圆心移动到圆的右侧turtle.pendown()turtle.pencolor(colors[i]) # 遍历颜色列表turtle.pensize(size) # 画笔的粗细设置为sizeturtle.circle(r,180) # 画半径为r,角度为180度的圆弧r=r-size+1 # 将下一个圆的半径减小# ④写文字
turtle.penup()
turtle.home() # 让海龟返回原点(0,0)
turtle.pendown()
turtle.pencolor("#ffffff") # 设置画笔颜色为白色
turtle.write("不经历风雨,怎么见彩虹?",align="center",font=("隶书",30)) # 居中写文字# ⑤ 画图结束,隐藏海龟
turtle.hideturtle()
——end——
也许,风雨过后没有期待已久的彩虹。也许,努力过后没能得到相应的回报,可毕竟我们都曾努力过。或许,彩虹已不远,回报也在前方不远处等着你。请认真过好每一天。
Python Turtle绘图 [难度2星]:彩虹(分五步完成)相关推荐
- Python Turtle绘图[难度3星]:24节气倒计时(1.使用列表存储数据)
"我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己." -- 初中信息技术教师 许华丽 2022年2月4日, ...
- Python Turtle绘图[难度2星]:甜美棒棒糖(基础效果 / 加描边优化)
我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者 案例1:棒棒糖(基础效果) ...
- Python Turtle绘图[难度3星]:24节气倒计时(2.使用字典存储数据)
"我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己." -- 初中信息技术教师 许华丽 Python Tur ...
- Python Turtle 绘图[难度2星]:一朵雪花(基础代码 、 加变量/加自定义函数优化)
2022年北京冬奥会开幕式上"一朵雪花"贯穿始终,给大家印象深刻.今天我们也让海龟来绘制一朵雪花.先绘制一朵普通雪花,在下一期分享中再让海龟来绘制一朵"中国结雪花&quo ...
- Python Turtle绘图[难度2星]:旋转风车(静态/动态,单色/多色)
我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者 色彩交织的风车是春天里一道绚烂的风景线.蓝天 ...
- Python Turtle绘图 [难度2星]:古风扇子
我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者 案例:古风扇子 难度:★★ ...
- Python Turtle绘图[难度2星]:2行代码画爱心
我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --初中信息技术教师 许华丽 2月14日的情人节,不是我们中国的传统节日,所 ...
- Python Turtle绘图[难度2星]:餐布桌布设计(格子 / 波点)
我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者 案例1: 餐布桌布设计1( ...
- Python Turtle绘图[难度2星]:多边形螺旋线(颜色交叉/颜色分层)
我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者 案例1: 多边形螺旋线(颜 ...
最新文章
- Pytorch实践中的几个重要概念
- 聊聊iOS开发中耳机的那点事(监听耳机拔插、耳机线控)-b
- 【C 语言】结构体 ( 指针运算与指针内存操作 | 结构体成员偏移量计算 )
- 深入理解ElasticSearch(八):索引管理
- 替代方法_替代化石燃料 科学家找到细菌生产塑料原料的新方法
- python元胞自动机模拟交通_基于立体网格的放射性污染物扩散过程模拟与表达
- 输入法 java_使用 Utf7ime 输入法实现中文输入 Windows+Java 平台(完整步骤版)
- pta 是否完全二叉搜索树_23.二叉搜索树的后序遍历序列
- “鬼才”论文致谢刷屏!感谢我导“似导非导”的指导……
- hmcl支持java7吗_求助。用HMCL下载1.7.10的问题
- DPDK NFV 性能提升
- 【K线绘图】教你用python绘制带有买卖点的股票K线图(附送鳄鱼指标、顾比均线指标、dataframe格式化输出)
- Windows小技巧 -- 已连接wifi密码查看
- Cython简单demo
- 图像篡改入门02 利用空间结构篡改定位
- 组播域GNS3与eNSP桥接以及GNS3的使用教程
- 换网线IP地址会改变吗?
- 字符串中大小写转换输出
- 护眼灯到底有没有用?2022专业护眼台灯选哪个牌子好
- 最新版安全狗(v4.0.2.665) 文件上传 绕过