# 一页纸 Turtle 手册

还在完善中...
Python 的 Turtle 库, 更详细的说明见官方文档 (opens new window)

# 意识

  • 我们可以想象有一只带着颜料桶的海龟, 它走过的旅途就变成了一幅画

# 基本程序结构

# 导入turtle库
import turtle

# 设置笔的状态
p = turtle.Pen()
p.pensize(3)
p.pencolor('gold')

# 笔进行移动
p.forward(100)

# 停止程序, 但绘图窗体不自动关闭. 如果没有它, 绘图窗口在程序运行结束后会自动关闭
turtle.done()
1
2
3
4
5
6
7
8
9
10
11
12
13
# 导入turtle库
import turtle as t

# 设置笔的状态
t.pensize(3)
t.pencolor('gold')

# 笔进行移动
t.forward(100)

# 停止程序, 但绘图窗体不自动关闭. 如果没有它, 绘图窗口在程序运行结束后会自动关闭
t.done()
1
2
3
4
5
6
7
8
9
10
11
12
from turtle import * # 直接将turtle库的所有函数都导入, 那么之后就不需要声明对象, 而是可以直接调用库里面的函数

color('red', 'yellow')
begin_fill()
while True:
    forward(200)
    left(170)
    if abs(pos()) < 1:
        break
end_fill()
done()
1
2
3
4
5
6
7
8
9
10
11
  • 通常, 我们还会载入 time 模块, 来控制海龟画笔的运动速度
import turtle
import time
1
2

# 设置画布

# 坐标系

# 设置画布大小

  • 海龟的活动范围, 就是画布大小

# 设置背景颜色

turtle.bgcolor('gray')
1

# 清理画布

# 设置笔的状态

# 创建笔

import turtle
t = turtle.Pen()

# 也可以这样:
import turtle as t
1
2
3
4
5

# 抬笔

penup()
pu()
up()
1
2
3

# 落笔

pendown()
pd()
down()
1
2
3

# 判断画笔是否落下

isdown()
1

# 设置笔的粗细

pensize()
width()
# 注意,没有size()
1
2
3

# 设置笔的颜色

# 参数可以是英文单词、RGB 颜色、十六进制颜色
pencolor('red')
pencolor()
pencolor()
1
2
3
4

# 设置填充颜色

fillcolor()
1

# 同时设置笔的颜色和填充颜色

color(笔的颜色, 填充颜色)
1

# 判断是否填充

filling()
1

# 填充颜色

  • 想要填充颜色, 海龟的轨迹必须在 begin_fill()end_fill() 之间
# 注意, 在填充之前, 要使用 fillcolor() 设定填充颜色
begin_fill()

end_fill()
1
2
3
4

# 设置笔的速度

speed()  # 可以设置的范围在 0-10 之间
1

# 基本绘图命令

# 前进

forward()
fd()
1
2

# 后退

backward()
bk()
back()
1
2
3

# 右转 / 顺时针旋转

right()
rt()
1
2

# 左转 / 逆时针旋转

left()
lt()
1
2

# 设置朝向

setheading()
seth()
1
2

# 画圆

circle()
1

# 画点

dot()
dot(100) #绘制直径为100的点, 可以认为是实心圆
1
2

# 画椭圆

# 设置角度

degrees()
1

# 设置弧度

radians()
1

# 进阶绘图命令

# 印章

stamp()
1

# 清除印章

clearstamp()
1

# 清除多个印章

clearstamps()
1

# 克隆

clone()
1

# 重置

reset()
1

# 清空

clear()
1

# 书写

write()
1

# 坐标命令

# 移动到指定坐标

goto()
1

# 连线


1

# 设置 x 坐标

setx()
1

# 设置 y 坐标

sety()
1

# 获取角度

# 设置角度

# 返回原点

home()
1

# 获取笔的属性

# 获取位置

position()
pos()
1
2

# 获取方向

towards()
1

# 获取 x 坐标

xcor()
1

# 获取 y 坐标

ycor() #表示y + coordinate
1

# 获取朝向

heading()
1

# 获取距离

distance()
1

# 海龟状态命令

# 设置海龟外形

![[Pasted image 20221203151703.png]]

  • 海龟一共有 7 种外形:
    • 箭头 / arrow
    • 空白 / blank
    • 圆形 / circle
    • 经典 / classic
    • 正方形 / square
    • 三角形 / triangle
    • 海龟 / turtle
shape(name='turtle') #设置为海龟外形
1

# 显示海龟

showturtle()
st()
1
2

# 隐藏海龟

hideturtle()
ht()
1
2

# 是否可见

isvisible()
1

# 等待

# 暂停

# 撤销操作

undo()
1

# 输入 & 输出

# 文本输入

textinput()
1

# 数字输入

numinput()
1

# 输出

# 监听

listen()
1

# 当鼠标点击

onclick()
1

# 当鼠标释放

onrelease()
1

# 当鼠标拖动

ondrag()
1

# 当键盘按下

onkeypress()
1

# 当键盘按下并释放

onkey()
onkeyrelease()
1
2

# 当点击屏幕

onclick()
onscreenclick()
1
2

# 数学函数

# 随机函数

import random #导入 random 库

random.randint(开始值, 结束值) //从开始值到结束值之间的整数中, 随机选择一个

random.choice(非空序列) //从非空序列中, 随机选择一个

1
2
3
4
5
6

# 动画

# 延迟

delay()
1

# 追踪

tracer()
1

# 更新

update()
1

# 当达到定时

ontimer()
1

# 主循环

mainloop()
done()
1
2

# 其他

# 保存为 svg 矢量图格式

首先安装 svg_turtle 库: pip install svg_turtle

from svg_turtle import SvgTurtle

t = SvgTurtle(500, 500) #指定图片大小

t.forward(200) #画一条线
t.dot(10) #画一个点, 或者认为是实心圆

t.save_as('/Users/crafter/Desktop/hello.svg') #需要指定保存文件的绝对路径
1
2
3
4
5
6
7
8