背景
应聘编程猫冬令营讲师,过一面后布置此作业,卒
任务
通过Python的turtle库,写出“旧”字
关于Turtle库
绘图方式和Pygame有很大不同,Pygame是通过场景与场景的快速变换体现事物的变化,而Turtle更像我们生活中的绘画,每一画依次完成。假设一个机器人在(0,0),我们对其有各种操作,如前行,后行,变换前进方向等操作,通过各项操作,利用Turtle就可以将其轨迹呈现出来
涉及到的函数
from Python官方文档
turtle.pensize(width=None)
//设置画笔的size,即轨迹的宽度
turtle.pencolor(*args)
//Return or set the pencolor. 返回或设置画笔颜色,支持通过RGB作为参数,注意用RGB前需要设置好colormode()的值,设为1或255.
turtle.forward(distance)
// 沿着画笔原来的方向,移动distance距离
turtle.backward(distance)
// 画笔后退distance距离
turtle.right(angle)¶
//Turn turtle right by angle units. 方向沿顺时针旋转angle角度
turtle.left(angle)
//逆时针旋转angle角度
turtle.goto(x, y=None)¶
//将画笔移动到特定位置(x,y)
turtle.up()
//Pull the pen up – no drawing when moving. 提起画笔,这个时候改变画笔的位置轨迹是不显示的
turtle.down()
// up的对立,画笔落笔,开始显示轨迹
步骤
- 提前设计‘旧’字各部分大小的比例,将其坐标化,令左上角为(0, 0),关键位置计算好对应坐标。
- 从(0,0)开始绘制,利用turtle.right(90)将画笔的方向变为竖直向下(默认方向水平向右),然后通过forward()绘制一竖
- 画笔提笔,然后从‘日’字左上角坐标处落笔,然后,然后按照‘日’字的笔画依次调整画笔位置和方向绘制即可,下图为效果
- 其实可以利用turtle.write()直接书写汉字
turtle.write(arg, move=False, align="left", font=("Arial", 8, "normal"))
//arg为要输出的字符串,align代表目前位置相对于字体底部的位置,font为输出的字体
源码
# coding=utf-8
import turtle
turtle.pensize(13)
turtle.pencolor("blue")
turtle.right(90)
turtle.forward(150)
turtle.penup()
turtle.goto(42, 0)
turtle.pendown()
turtle.forward(150)
turtle.backward(150)
turtle.left(90)
turtle.forward(80)
turtle.right(90)
turtle.forward(150)
turtle.penup()
turtle.goto(42, -71)
turtle.pendown()
turtle.left(90)
turtle.forward(80)
turtle.penup()
turtle.goto(42, -147)
turtle.pendown()
turtle.forward(80)
turtle.penup()
turtle.goto(350,-178)
turtle.colormode(255)
turtle.color("blue")
turtle.write("旧", align="right", font=('微软雅黑', 133, 'normal'))
turtle.mainloop()