我喜欢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星]:彩虹(分五步完成)相关推荐

  1. Python Turtle绘图[难度3星]:24节气倒计时(1.使用列表存储数据)

    "我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己." -- 初中信息技术教师  许华丽 2022年2月4日, ...

  2. Python Turtle绘图[难度2星]:甜美棒棒糖(基础效果 / 加描边优化)

    我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者    案例1:棒棒糖(基础效果)       ...

  3. Python Turtle绘图[难度3星]:24节气倒计时(2.使用字典存储数据)

    "我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己." -- 初中信息技术教师  许华丽 Python Tur ...

  4. Python Turtle 绘图[难度2星]:一朵雪花(基础代码 、 加变量/加自定义函数优化)

    2022年北京冬奥会开幕式上"一朵雪花"贯穿始终,给大家印象深刻.今天我们也让海龟来绘制一朵雪花.先绘制一朵普通雪花,在下一期分享中再让海龟来绘制一朵"中国结雪花&quo ...

  5. Python Turtle绘图[难度2星]:旋转风车(静态/动态,单色/多色)

    我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者 色彩交织的风车是春天里一道绚烂的风景线.蓝天 ...

  6. Python Turtle绘图 [难度2星]:古风扇子

    我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者    案例:古风扇子       难度:★★ ...

  7. Python Turtle绘图[难度2星]:2行代码画爱心

    我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --初中信息技术教师  许华丽 2月14日的情人节,不是我们中国的传统节日,所 ...

  8. Python Turtle绘图[难度2星]:餐布桌布设计(格子 / 波点)

    我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者    案例1:       餐布桌布设计1( ...

  9. Python Turtle绘图[难度2星]:多边形螺旋线(颜色交叉/颜色分层)

    我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者    案例1:       多边形螺旋线(颜 ...

最新文章

  1. Pytorch实践中的几个重要概念
  2. 聊聊iOS开发中耳机的那点事(监听耳机拔插、耳机线控)-b
  3. 【C 语言】结构体 ( 指针运算与指针内存操作 | 结构体成员偏移量计算 )
  4. 深入理解ElasticSearch(八):索引管理
  5. 替代方法_替代化石燃料 科学家找到细菌生产塑料原料的新方法
  6. python元胞自动机模拟交通_基于立体网格的放射性污染物扩散过程模拟与表达
  7. 输入法 java_使用 Utf7ime 输入法实现中文输入 Windows+Java 平台(完整步骤版)
  8. pta 是否完全二叉搜索树_23.二叉搜索树的后序遍历序列
  9. “鬼才”论文致谢刷屏!感谢我导“似导非导”的指导……
  10. hmcl支持java7吗_求助。用HMCL下载1.7.10的问题
  11. DPDK NFV 性能提升
  12. 【K线绘图】教你用python绘制带有买卖点的股票K线图(附送鳄鱼指标、顾比均线指标、dataframe格式化输出)
  13. Windows小技巧 -- 已连接wifi密码查看
  14. Cython简单demo
  15. 图像篡改入门02 利用空间结构篡改定位
  16. 组播域GNS3与eNSP桥接以及GNS3的使用教程
  17. 换网线IP地址会改变吗?
  18. 字符串中大小写转换输出
  19. 护眼灯到底有没有用?2022专业护眼台灯选哪个牌子好
  20. 最新版安全狗(v4.0.2.665) 文件上传 绕过

热门文章

  1. ChatGPT新突破:打造自己的智能机器人控制系统
  2. 一种基于区块链的场外交易平台
  3. hexo博客文章置顶功能实现的两种方法
  4. 独乐乐不如众乐乐---二建通过啦~
  5. 背后的力量| 推动智慧医院建设 华云数据为重庆华玺医院构建一体化医疗支撑平台
  6. Sicily 1009. Mersenne Composite N
  7. java套娃_[GXYCTF2019]禁止套娃
  8. 【Unity】虚拟现实 VRTK插件使用教程(二)人物传送、光标指针、传送规则、玩家区域检测
  9. 《平凡的世界》-田晓霞和孙少平 读后感
  10. Oracle 闪回技术详解