Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
官方文档:
https://docs.python.org/3/library/turtle.html
turtle绘图基础知识
画布(canvas)
画笔
画笔属性
import?turtle
t=turtle.Turtle()
t.pensize()??#?画笔宽度
t.pencolor()?#?不传参数,则返回当前画笔颜色,传入参数则是设置画笔颜色,可以是字符串如“green”,"red",也可以是RGB?3元组
#?画笔的移动速度,速度范围[0,10]整数,数字越大移动速度越快
t.speed(speed)
画笔运行命令
命令 |
说明 |
forward(distance) |
向当前画笔方向移动distance像素长度 |
backward(distance) |
向当前画笔相反方向移动distance像素长度 |
right(degree)
顺时针移动degree° |
left(degree)
逆时针移动degree° |
pendown()
移动时绘制图形,缺省时也为绘制 |
goto(x,y)
将画笔移动到坐标为x,y的位置 |
penup()
提起笔移动,不绘制图形,用于另起一个地方绘制 |
circle()
画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 |
setx( )
将当前x轴移动到指定位置 |
sety( )
将当前y轴移动到指定位置 |
setheading(angle)
设置当前朝向为angle角度 |
home()
设置当前画笔位置为原点,朝向东。 |
dot(r)
绘制一个指定直径和颜色的圆点 |
画笔控制命令
fillcolor(colorstring)
绘制图形的填充颜色 |
color(color1,color2)
同时设置pencolor=color1,fillcolor=color2 |
filling()
返回当前是否在填充状态 |
begin_fill()
准备开始填充图形 |
end_fill()
填充完成 |
hideturtle()
隐藏画笔的turtle形状 |
showturtle()
显示画笔的turtle形状 |
全局控制命令
clear()
清空turtle窗口,但是turtle的位置和状态不会改变 |
reset()
清空窗口,重置turtle状态为起始状态 |
undo()
撤销上一个turtle动作 |
isvisible()
返回当前turtle是否可见 |
stamp()
复制当前图形 |
turtle.write(s [,font=("font-name",font_size,"font_type")])
写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项 |
其他命令
mainloop()或done()
启动事件循环?-调用Tkinter的mainloop函数。
必须是乌龟图形程序中的最后一个语句。
|
mode(mode=None)
设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。
模式初始龟标题正角度standard向右(东)逆时针logo向上(北)顺时针
|
delay(delay=None)
设置或返回以毫秒为单位的绘图延迟。 |
begin_poly()
开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。 |
end_poly()
停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。 |
get_poly()
返回最后记录的多边形。 |
代码示例:
1.? 简单的树
import?turtle
def?tree(branch_len):
????if?branch_len>5:
????????t.forward(branch_len)
????????t.right(20)
????????tree(branch_len-15)
????????t.left(40)
????????tree(branch_len-15)
????????t.right(20)
????????t.backward(branch_len)
t=turtle.Turtle()
t.left(90)
t.penup()
t.backward(100)
t.pendown()
t.pencolor('green')
t.pensize(2)
tree(75)
t.hideturtle()
turtle.done()
其他样例:
https://www.zhihu.com/question/271643290 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|