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()

启动事件循环 -调用Tkintermainloop函数。

必须是乌龟图形程序中的最后一个语句。

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

本文地址: http://chenxm.cc/article/1038.html
版权声明: 本文为原创文章,版权归  陈新明  所有,欢迎分享本文,转载请保留出处!
上一篇: 调整python中的递归深度限制
下一篇: python 复杂递归问题 汉诺塔
发表评论

还没有留言,还不快点抢沙发?