0
点赞
收藏
分享

微信扫一扫

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

小禹说财 2022-03-16 阅读 210
python

 

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

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

——Python教学路上的爬行者


   案例:古风扇子   

   难度:★★☆☆☆☆   

 【效果预览】 

该案例在初中Python课程24课中讲过,这次归纳整理又做了一些补充。

Python第24课:海龟绘图_画圆和点、海龟书写文本icon-default.png?t=M276http://mp.weixin.qq.com/s?__biz=MzIwMjE1MTI4MA==&mid=2247491356&idx=1&sn=689bde516beb5fbd0d76ac2221d022f6&chksm=96e25b03a195d2158e3f495db1f884dc601b50fbf02a15516a307e839cc4df9da7d0aa508d01&scene=21#wechat_redirect

 【配色技巧】 

turtle绘图时不知道如何搭配颜色,怎么办?

建议在浏览器中搜索相关主题的图片,选中自己喜欢的图片,然后根据图片中的颜色搭配来设置背景和画笔颜色。

给大家推荐一个美术老师常去的网站——花瓣网,“花瓣网”是“设计师寻找灵感的天堂”。

举例:我在花瓣网上以“扇子”、“古风”和“古装”等关键词搜索图片的时候,一眼就看中了下面这张图片,图中的配色我超喜欢。

所以本案例中扇子的配色,就借鉴了下图的颜色搭配,也因此命名为“古风扇子”。背景颜色bgcolor参考的是图中男子长衫的颜色;扇子的颜色,即画笔颜色pencolor参考的是男子手中拂尘的颜色。

那又该如何获取图片中颜色的参数呢?

1. 如果你使用photoshop软件,取色就相对简单。先用软件打开图片,再用“吸管”工具去吸取图片中喜欢且需要的颜色,软件会自动显示该颜色的rgb参数和十六进制数值。(操作见下图)

bgcolor(58,148,119)

pencolor("khaki")

 

2. 如果不会photoshop软件,可在浏览器搜索打开“在线颜色选择器”,用肉眼靠直觉去选择与图片相近的颜色。(建议大家一定要试试这个工具,对turtle绘图配色非常有用)

 【代码参考】 

以下代码中分别使用了while和for两种循环。两种循环对比使用,更能明晰它们的不同。

本案例中循环的功能只是计数。

计数循环是for关键字的专长,所以在这个案例中建议优先使用for循环。(使用for循环只需要写4行代码;但使用while循环则需要写6行代码)

如果要使用while关键字,需要额外给它增加一个计数器变量,让计数器来控制循环的次数。

# 海龟画扇子(扇子的打开方式是从右往左)
# 思考如何让扇子从左往右打开???
import turtle               # 导入 turtle 库
turtle.bgcolor("teal")      # 设置背景颜色为teal
turtle.pencolor("khaki")    # 设置画笔颜色为khaki
turtle.speed(0)             # 设置海龟的绘图速度为0,最快。参数为1时最慢。
turtle.left(15)             # 绘图之前先让海龟向左旋转15度

'''用while循环实现            
i=1                         # i是while循环的计数器变量,设置让它从1开始计数。
                            # 事实上电脑的计数和我们人类不同,电脑是从0开始计数的,如0、1、2、3……,学for循环去体验电脑报数。
while i<=150:               # 循环体部分要执行150次,每次旋转1度,程序结束后就旋转了150度。
    turtle.forward(200)     # 海龟前进200个像素(步)
    turtle.backward(200)    # 海龟后退200个像素(步)
    turtle.left(1)          # 海龟向左旋转1度

    i=i+1                   # 改变计数器(计数器加1),否则会进入死循环
'''
# 用for循环实现
for i in range(150):        # range函数将会产生0到149,共150个整数。
                            # for循环会自动遍历这150个整数,产生150次循环,所以for循环不用计数器。
    turtle.forward(200)     # 海龟前进200个像素(步)
    turtle.backward(200)    # 海龟后退200个像素(步)
    turtle.left(1)          # 海龟向左旋转1度

turtle.home()               # 让海龟回到原点

turtle.penup()              # 画笔抬起,海龟移动时不画线
turtle.right(90)            # 海龟向右旋转90度,也就是海龟的方向朝下。
turtle.forward(70)          # 海龟前进70步
turtle.pendown()            # 画笔落下,海龟移动时将画线

turtle.write("分明一夜文姬梦,只有青团扇子知。",align="center",font=("隶书",16))  # 海龟书写文本
turtle.hideturtle()         # 隐藏藏海

   turtle常用指令   

——end——

举报

相关推荐

0 条评论