我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜。

一些让我心动过的案例,分享给大家,也珍藏给自己。

——Python教学路上的爬行者


   案例1:棒棒糖(基础效果)  

   难度:★★☆☆☆☆

【效果预览】

 【重难点突破】 

画棒棒糖的难点是画圆形糖中间的圆形螺旋线,所以建议大家不要急于复制代码直接去画整体的棒棒糖,而是要静下心来先单独研究圆形螺旋线的绘制方法。

画圆形螺旋线的方法:持续增加半径画圆弧的同时,再向内旋转一定的角度来减小离心距离。

持续增加半径需要通过循环变量来实现

代码参考如下:

自己尝试更改不同的数字,去体验每个数字带来的变化。多次尝试之后,自然就明白代码的功能了。

# 【画圆形螺旋线】
# 持续增加半径画圆弧的同时,再向内旋转一定的角度来减小离心距离
# 以下参数都是反复看运行效果不断调试而得到的
import turtle
turtle.speed(1)
for i in range(37):    turtle.circle(5*i,10)  # 画半径为5*i,角度为10的圆弧。turtle.left(10)        # 海龟向左转向10度。即逆时针向圆弧内转。度数越大,离心效果越小;反之亦然。

【配色参考】

“从喜欢的图片中找寻配色灵感

[图片来源于花瓣网]

吸取以上图片得到的颜色值:

背景颜色  #cde9f2 一种浅蓝色

圆形糖的颜色  #fec5cc一种浅粉色

如何吸取图片中的颜色?

请参考以下文章:

Python Turtle绘图:横切的橙子(配色优化——邻近色/反差色)http://mp.weixin.qq.com/s?__biz=MzIwMjE1MTI4MA==&mid=2247501240&idx=1&sn=d4b76a741bc7cbd12abb3abba5af2730&chksm=96e181a7a19608b1d6d4b52106b1361ee8d95e0d2c7c930dca9976660935b4ad566d8d63e731&scene=21#wechat_redirect

【代码参考】

# 案例1:甜美棒棒糖(基础效果)
#(以下参数基本都是反复看运行效果不断调试而得到的常量。如果使用变量,再总结出适合画不同大小棒棒糖的公式,只会使得代码庞大不易理解。)# 程序初始化设置
import turtle                   # 导入turtle库(模块)
turtle.speed(0)                 # 设置海龟的绘图速度为0,最快。参数为1时最慢。
turtle.bgcolor("#cde9f2")       # 设置背景颜色为 #cde9f2 ,一种浅蓝色。### ① 画棒棒# 为了使海龟绘画程序简单,棒的顶端就画在圆形糖的中心位置。
# 因为棒在圆形糖下面,所以要先画棒再画糖,这样圆形糖就会遮挡住多余的棒。
# 又因为糖下面的棒棒较长,所以为了美观,需要将圆形糖的坐标中心(即棒的顶端)垂直往上移
turtle.penup()                  # 画笔抬起 ,则海龟行走时不会留下痕迹。
turtle.goto(0,100)              # 使海龟移动至坐标(0,100),即画棒将从坐标(0,100)位置开始,而不是坐标原点(0,0)。
turtle.pendown()                # 画笔落下,海龟行走时会留下痕迹。# 棒棒向左下方倾斜。倾斜也是为了美观。
turtle.right(120)               # 海龟头部默认是水平向右,该设置可以使得海龟向右旋转120度,即顺时针旋转。
turtle.pencolor("#e2b47d")      # 设置画笔的颜色为 #e2b47d ,一种浅棕色。
turtle.pensize(30)              # 设置画笔的粗细为30,即棒棒的粗线是30像素。
turtle.forward(270)             # 海龟向前移动270步(像素),即棒棒的长度是270像素。# 海龟抬笔后退,重新回到起始位置
turtle.penup()                  # 画笔抬起,则海龟行走时不会留下痕迹。
turtle.backward(270)            # 海龟后退270步(像素)返回
turtle.pendown()                # 画笔落下,海龟行走时才会留下痕迹。# 重置海龟的朝向,即回到默认
turtle.setheading(0)            # 不管海龟之前是朝那个方向多少度,这个设置都可使海龟的头部水平朝右,即回到默认方向。### ② 画圆形糖turtle.dot(220,"#fec5cc")       # 画直径为220,颜色为 #fec5cc 的圆点,是一种浅粉色。### ③ 画圆形螺旋线# 直接画出的螺旋线会偏向左下方,所以要将坐标向右上方移动
turtle.penup()                  # 画笔抬起,则海龟行走时不会留下痕迹。
turtle.goto(0+10,100+10)        # 将螺旋线起点位置向右上方移动,即将x和y坐标都加10
turtle.pendown()                # 画笔落下,海龟行走时才会留下痕迹。# 设置圆形螺旋线的颜色和粗线
# 不建议使用纯白色#ffffff,因为纯白色太刺眼又和周围的颜色对比太明显,所以会使得图案色彩搭配不柔和。
turtle.pencolor("#f3ecf1")      # 设置画笔的颜色为 #f3ecf1 ,和白色相近,即设置螺旋线的颜色。
turtle.pensize(15)              # 设置画笔的粗线为 15 ,即设置螺旋线的粗线。# 画圆形螺旋线(持续增加半径画圆弧的同时,再向内旋转一定的角度来减小离心距离)
for i in range(37):turtle.circle(5*i,10)       # 画半径为 5*i ,角度为 10 的圆弧。(这个参数是不断调试的结果)turtle.left(10)             # 海龟向左转向10度。即逆时针向圆弧内转。度数越大,离心效果越小;反之亦然。# 海龟画图结束,隐藏表示海龟的箭头
turtle.hideturtle()

  案例2:棒棒糖(加描边优化)  

   难度:★★☆☆☆☆

【效果预览】

如何实现描边?

棒棒描边方法:通过画内外两根粗线长短不一样的棒棒重叠来实现

圆形糖描边方法:通过画内外两个直径和颜色不同的圆点重叠来实现

【代码参考】

# 案例2:甜美棒棒糖(加描边优化)
#(以下数字参数都是不断调试的结果。如果使用变量,再总结出适合画不同大小棒棒糖的公式,只会使得代码庞大更难理解。)# 程序初始化设置
import turtle                   # 导入turtle库(模块)
turtle.speed(0)                 # 设置海龟的绘图速度为0,最快。参数为1时最慢。
turtle.bgcolor("#9a7cbc")       # 设置背景颜色为 #9a7cbc ,一种紫色### ① 画棒棒(加描边)
# 描边可以通过画内外两根粗线长短不一样的棒棒重叠来实现# 为了使海龟绘画程序简单,棒的顶端就画在圆形糖的中心位置。
# 因为棒在圆形糖下面,所以要先画棒再画糖,这样圆形糖就会遮挡住多余的棒。
# 又因为糖下面的棒棒较长,所以为了美观,需要将圆形糖的坐标中心(即棒的顶端)垂直往上移
turtle.penup()                  # 画笔抬起 ,则海龟行走时不会留下痕迹。
turtle.goto(0,100)              # 使海龟移动至坐标(0,100),即画棒将从坐标(0,100)位置开始,而不是坐标原点(0,0)。
turtle.pendown()                # 画笔落下,海龟行走时会留下痕迹。# 棒棒向左下方倾斜。倾斜也是为了美观。# 画外部的棒棒(粗一点)
turtle.right(120)               # 海龟头部默认是水平向右,该设置可以使得海龟向右旋转120度,即顺时针旋转。
turtle.pencolor("#93543d")      # 设置画笔的颜色为 #93543d ,是类似巧克力的颜色。
turtle.pensize(40)              # 设置画笔的粗细为40。也就是棒棒的粗线是40。
turtle.forward(270)             # 海龟向前移动270步(像素),即棒棒的长度是270像素。# 海龟抬笔后退几步,使棒棒底部也出现描边
turtle.penup()                  # 画笔抬起,则海龟行走时不会留下痕迹。
turtle.backward(6)              # 海龟后退6步(像素),可使棒棒底部也有描边。这个粗线参数需要不断调试。
turtle.pendown()                # 画笔落下,海龟行走时才会留下痕迹。# 画内部的棒棒(细一点)
turtle.pensize(40-20)           # 设置画笔的粗细为 40-20 。也就是内部棒棒的粗线是40-20。
turtle.pencolor("#ffecaf")      # 设置内部棒棒的颜色为 #ffecaf (一种浅黄色)
turtle.backward(270-6)          # 海龟向后退 270-6 步(像素)       # 重置海龟的朝向,即回到默认
turtle.setheading(0)            # 不管海龟之前是朝那个方向多少度,这个设置都可以使海龟的头部水平朝右,即回到默认方向。
turtle.goto(0,100)              # 使海龟移动至坐标(0,100)。只要前面画棒时前进后退的参数设置的合理,# 海龟就已经回到了坐标(0,100)位置,但为了保险起见还是再设置一次。### ② 画圆形糖(加描边)
# 描边可通过画内外两个直径和颜色不同的圆点重叠来实现turtle.dot(240,"#93543d")      # 画直径为 240 ,颜色为 #93543d 的圆点。一种类似巧克力的颜色。
turtle.dot(240-20,"#fcd3d1")    # 画直径为 240-20 ,颜色为 #fcd3d1 的圆点。这个颜色是浅粉色### ③ 画圆形螺旋线
# 直接画出的螺旋线会偏向左下方,所以要将坐标向右上方移动# 海龟抬笔,向右上方移动
turtle.penup()                  # 画笔抬起,则海龟行走时不会留下痕迹。
turtle.goto(0+10,100+10)        # 将螺旋线起点坐标位置向右上方移动,即将x和y坐标都增加10
turtle.pendown()                # 画笔落下,海龟行走时才会留下痕迹。# 设置圆形螺旋线的颜色和粗线
# 不建议使用纯白色#ffffff,因为纯白色太刺眼又和周围的颜色对比太明显,所以会使得图案色彩搭配不柔和。
turtle.pencolor("#fc7397")      # 设置画笔的颜色为 #fc7397 ,一种玫红色。即设置螺旋线的颜色。
turtle.pensize(15)              # 设置画笔的粗线为 15 ,即设置螺旋线的粗线。# 画圆形螺旋线(持续增加半径画圆弧的同时,再向内旋转一定的角度来减小离心距离)
for i in range(37):           turtle.circle(5*i,10)       # 画半径为 5*i ,角度为 10 的圆弧。(这个参数是不断调试的结果)turtle.left(10)             # 海龟向左转向10度。即逆时针向圆弧内转。度数越大,离心效果越小;反之亦然。# 海龟画图结束,隐藏表示海龟的箭头
turtle.hideturtle()      

   turtle常用指令   

——end——

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

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

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

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

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

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

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

  4. Python Turtle绘图 [难度2星]:彩虹(分五步完成)

    我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜. 一些让我心动过的案例,分享给大家,也珍藏给自己. --Python教学路上的爬行者 彩虹是那样的美丽动人,从地的这一端跨到那一端 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用...
  2. C#跳转语句 迭代法 穷举法
  3. JAVA异常处理正常的逻辑_JAVA异常的思考与总结
  4. 【MySQL】触发器:让指定某一字段的值等于id
  5. SAP Fiori My task里complete checkbox的处理
  6. 如何对RTSP播放器做功能和性能评估
  7. metasploit渗透测试指南_Metasploit渗透测试环境搭建与使用
  8. 高性能服务器程序框架,高性能服务器程序框架
  9. android中webview使用打开系统相机录像_有没有什么高效使用微信的经验?
  10. iOS开发中那些高效常用的宏
  11. php界面怎么美化,美化你的应用程序的外观界面
  12. selenium弹窗处理,包括Javascript弹窗、HTML弹出层和Windows弹窗
  13. 一种贴片晶振异常情况,及晶振频率评估方法
  14. you are in emergency mode解决办法
  15. 家庭养花的资料大全-春雷转
  16. Java中为什么有时候通过指定编码集无法解决乱码
  17. 在python终端中打印颜色的3中方式(python3经典编程案例)
  18. python运算均值方差_Python 做大量组合的均值方差模型
  19. 2020-04-19-E-prime2.0.10安装过程
  20. AWS Academy 学习平台建立 Learner Lab - 教师

热门文章

  1. 潜在语义分析 (LSA),概率潜在语义分析 (PLSA)
  2. 20221218-19英语学习
  3. 实现抖音霓虹灯效果---OpenCV-Python开发指南(55)
  4. CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 全文翻译+详细解读
  5. 站群教程SEO推广(SEO教程)
  6. 阿里云网盘内测申请表,阿里网盘内测资格申请
  7. 【华为OD机试真题 JAVA】找城市
  8. Involution:空间不共享?可完全替代卷积的高性能算子 | CVPR 2021
  9. tplink打印机服务器重置,TP-Link TL-WDR7500无线路由器如何打造打印机共享服务器
  10. 基本运算电路之---反向比例运算电路(1)