官方文档:https://docs.python.org/zh-cn/3.9/library/turtle.html

引入turtle库:

1
import turtle

窗口控制

1
2
3
4
5
6
turtle.bgcolor('orange') # 设置背景颜色
turtle.bgpic("") # 设置背景图片
turtle.clearscreen() # 清空窗口
turtle.resetscreen() # 重置窗口设置
turtle.screensize(10,10) # 窗口大小
turtle.setworldcoordinates() # 设置世界坐标系

动画控制

1
2
3
turtle.tracer(0) # 关闭动画,绘图速度更快
turtle.update() # 更新画布显示内容
turtle.delay(1000) # 延迟

画笔控制

颜色控制

1
2
3
turtle.color('blue') # 内部颜色
turtle.pencolor('red') # 边缘颜色
turtle.fillcolor('orange') # 填充颜色

填充

1
2
3
turtle.filling() # 是否填充 返回布尔值 True or False
turtle.begin_fill() # 开始填充
turtle.end_fill() # 结束填充

绘图状态

1
2
3
4
5
6
7
8
9
10
11
12
turtle.showturtle() # 显示鼠标 st()
turtle.hideturtle() # 隐藏鼠标 ht()

turtle.penup() # 抬起画笔 pu() up()
turtle.pendown() # 放下画笔 pd() down()
turtle.pen() # 返回画笔状态

turtle.pensize(10) # 设置画笔大小 width(10)
turtle.speed(2) # 设置绘画速度,范围是 0-10,默认为6

turtle.isdown() # 是否按下画笔 返回布尔值 True or False
turtle.isvisible() # 是否可见 返回布尔值 True or False

其他控制

1
2
3
4
5
6
turtle.reset() # 重置画布
turtle.clear() # 清除画布
turtle.hideturtle() # 隐藏画笔
turtle.showturtle() # 显示画笔
turtle.write('Hello, World!', False, "left", ("Arial", 20, "normal")) # 绘制文字
turtle.done() # 完成绘画,关闭窗口

移动和绘制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
turtle.forward(100) # 前进  fd()
turtle.backward(100) # 后退 bk()
turtle.right(90) # 右转 rt()
turtle.left(90) # 左转 lt()
turtle.goto(x, y) # 移动到指定位置 setpos() setposition()
turtle.setx(100) # 设置x坐标
turtle.sety(100) # 设置y坐标
turtle.setheading(90) # 设置朝向 seth()
turtle.home() # 移动到起始位置

turtle.circle(100,360,6) # 画圆
turtle.dot(10,'red') # 画点

turtle.undo() # 撤销
turtle.speed(1) # 设置绘画速度,范围是 0-10,默认为6

获取当前状态

1
2
3
4
5
6
turtle.position() # 返回当前位置 turtle.pos()
turtle.towards() # 返回当前朝向
turtle.xcor() # 返回当前位置的x坐标
turtle.ycor() # 返回当前位置的y坐标
turtle.heading() # 返回当前朝向 返回left的角度值
turtle.distance(x, y) # 返回当前位置到指定位置的直线距离

设置度量单位

1
2
degrees() # 设置角度模式
radians() # 设置弧度模式

正方形

1
2
3
for i in range(4):
turtle.forward(100)
turtle.right(90)

圆形

1
turtle.circle(50)  # 半径为50的圆

多边形

1
2
3
4
5
n = 5  # 边数
angle = 360 / n # 每条边的角度
for _ in range(n):
turtle.forward(100)
turtle.right(angle)

矩形

1
2
3
width, height = 100, 50  


1
2
3
4
5
6
7
8
9
10
11
# 获取当前鼠标位置:
x, y = turtle.pos()
# 前进100个单位:turtle.fd(100)
turtle.forword(100)
# 右转90度:turtle.rt(90)
turtle.right(90)
# 左转90度:turtle.lt(90)
turtle.left(90)

# 绘制完成后
turtle.done()