Turtle 库中文版
Turtle graphics is a popular way for introducing programming to kids
1.
turtle 动作函数(Turtle motion)
turtle.forward(distance)
turtle.fd(distance)
向箭头所指方向移动 distance 像素的距离
>>> turtle.position()
(0.00,0.00)
>>> turtle.forward(25)
>>> turtle.position()
(25.00,0.00)
>>> turtle.forward(-75)
>>> turtle.position()
(-50.00,0.00)
turtle.back(distance)
turtle.bk(distance)
turtle.backward(distance)
向箭头所指反方向移动 distance 像素距离
>>> turtle.position()
(0.00,0.00)
>>> turtle.backward(30)
>>> turtle.position()
(-30.00,0.00)
turtle.right(angle)
turtle.rt(angle)
向右(顺时针)旋转 angle 角度(单位是缺省值是角度,可以通过函数
degree()和 radians()函数设置单位是度还是弧度)
>>> turtle.heading()
22.0
>>> turtle.right(45)
>>> turtle.heading()
337.0
turtle.left(angle)
turtle.lt(angle)
向左(顺时针)旋转 angle 角度(单位是缺省值是角度,可以通过函数
degree()和 radians()函数设置单位是度还是弧度)
>>> turtle.heading()
22.0
>>> turtle.left(45)
>>> turtle.heading()
67.0
turtle.goto(x, y=None)
turtle.setpos(x, y=None)
turtle.setposition(x, y=None)
移动 turtle 到一个绝对位置,如果笔是放下的,就画一条线,不
改变 turtle 的方向。
如果 y 是 None,x 必须是一个坐标对或者是 Vec2D
>>> tp = turtle.pos()
>>> tp
(0.00,0.00)
>>> turtle.setpos(60,30)
>>> turtle.pos()
(60.00,30.00)
>>> turtle.setpos((20,80))
>>> turtle.pos()
(20.00,80.00)
>>> turtle.setpos(tp)
>>> turtle.pos()
(0.00,0.00)
turtle.setx(x)
设置 turtle 的第一坐标(横坐标)为 x,第二坐标不变
>>> turtle.position()
(0.00,240.00)
>>> turtle.setx(10)
>>> turtle.position()
(10.00,240.00)
turtle.sety(y)
>>> turtle.position()
(0.00,40.00)
>>> turtle.sety(-10)
>>> turtle.position()
(0.00,-10.00)
turtle.setheading(to_angle)
turtle.seth(to_angle)
把 turtle 的方向设成 to_angle 角度,下面是以角度为单位的几个
经常使用的值
standard mode logo mode
0 - east
0 - north
90 - north
90 - east
180 - west
180 - south
270 - south
270 - west
>>> turtle.setheading(90)
>>> turtle.heading()
90.0
turtle.home()
移动 turtle 到原点坐标(0,0),并把 heading 设置成开始方向
(开始方向依赖于模式,参见 mode())
>>> turtle.heading()
90.0
>>> turtle.position()
(0.00,-10.00)
>>> turtle.home()
>>> turtle.position()
(0.00,0.00)
>>> turtle.heading()
0.0
turtle.circle(radius, extent=None, steps=None)
以 radius 给定的值为半径画一个圆。圆心在 turtle 左侧 radius 处。extend 值决
定画出的圆弧的角度(画半圆,则 extend 值为 180),如果省略 extend 参数,函
数会画一个圆。如果 extend 不是一个完整的圆,弧的终点是当前笔的位置。如
果 radius 的值是正的,turtle 按逆时针方向画弧,否则按顺时针方向画弧。turtle
最终的方向被 extend 的值所改变。
turtle.circle 画出的圆,是一个正多边形的近似。steps 参数决定了画这个圆用了
多少步数。如果省略了 steps 参数,turtle 将自动计算并绘制。tuttle.circle 也可
用于绘制正多边形。
>>> turtle.home()
>>> turtle.position()
(0.00,0.00)
>>> turtle.heading()
0.0
>>> turtle.circle(50)
>>> turtle.position()
(-0.00,0.00)
>>> turtle.heading()
0.0
>>> turtle.circle(120, 180)
>>> turtle.position()
(0.00,240.00)
>>> turtle.heading()
180.0
# draw a semicircle
turtle.dot(size=None, *color)
以参数 size 为直径、以 color 为颜色,绘制一个圆点。如果没有给出 size 参数,
则取 pensize+4 和 pensiz * 2 的最大值。
>>> turtle.home()
>>> turtle.dot()
>>> turtle.fd(50); turtle.dot(20, "blue"); turtle.fd(50)
>>> turtle.position()
(100.00,-0.00)
>>> turtle.heading()
0.0
turtle.stamp()
将 turtle 的形状复制到 turtle 的当前位置,返回 tamp_id,可以调用 clearstamp
(stamp_id)删除。
>>> turtle.color("blue")
>>> turtle.stamp()
11
>>> turtle.fd(50)
turtle.clearstamp(stampid)
>>> turtle.position()
(150.00,-0.00)
>>> turtle.color("blue")
>>> astamp = turtle.stamp()
>>> turtle.fd(50)
>>> turtle.position()
(200.00,-0.00)
>>> turtle.clearstamp(astamp)
>>> turtle.position()
(200.00,-0.00)
turtle.undo()
撤销最后一次 turtle 动作。
turtle.fd(50); turtle.lt(80)
>>> for i in range(4):
...
...
>>> for i in range(8):
...
turtle.undo()
turtle.speed(speed=None)
参数 speed 的取值范围为 0 到 10 的整数或者是一个字符串,如果没有给出 speed
参数,则返回当前值。
如果 speed 值大于 10 或者小于 0.5,speed 被设置为 0。speed 字符串形式被映
射为下面的 speed 值形式:
'fastest' : 0
: 10
'fast'
: 6
'normal'
'slow'
: 3
'slowest' : 1
从 0 到 10 直线和转角动画的速度逐渐增加。speed = 0 没有动画动作发生,
forward/back turtle 会跳跃,right/left 转角立即发生。
>>> turtle.speed()
3
>>> turtle.speed('normal')
>>> turtle.speed()
6
>>> turtle.speed(9)
>>> turtle.speed()
9
2. 显示 turtle 状态
turtle.position()
turtle.pos()
返回 turtle 位置
>>> turtle.pos()
(440.00,-0.00)
turtle.towards(x, y=None)
返回 turtle 当前位置线到指定位置(x, y),向量或其他 turtle 的角度。
>>> turtle.goto(10, 10)
>>> turtle.towards(0,0)
225.0
turtle.xcor()
返回 turtle 的 x 坐标
>>> turtle.home()
>>> turtle.left(50)
>>> turtle.forward(100)
>>> turtle.pos()
(64.28,76.60)
>>> print(round(turtle.xcor(), 5))
64.27876
turtle.ycor()
返回 turtle 的 y 坐标
>>> turtle.home()
>>> turtle.left(60)
>>> turtle.forward(100)
>>> print(turtle.pos())
(50.00,86.60)
>>> print(round(turtle.ycor(), 5))
86.60254
turtle.heading()
返回 turtle 当前 heading
>>> turtle.home()
>>> turtle.left(67)
>>> turtle.heading()
67.0
turtle.distance(x, y=None)
返回从当前 turtle 到(x, y)、给定向量或其他 turtle 的距离。
>>> turtle.home()
>>> turtle.distance(30,40)
50.0
>>> turtle.distance((30,40))
50.0
>>> joe = Turtle()
>>> joe.forward(77)
>>> turtle.distance(joe)
77.0
3. 度量设置
turtle.degrees(fullcircle=360.0)
设置角度度量单位,缺省值 360。
>>> turtle.home()
>>> turtle.left(90)
>>> turtle.heading()
90.0
Change angle measurement unit to grad (also known as gon,
grade, or gradian and equals 1/100-th of the right angle.)
>>> turtle.degrees(400.0)
>>> turtle.heading()
100.0
>>> turtle.degrees(360)
>>> turtle.heading()
90.0
turtle.radians()
设置角的测度单位是弧度
>>> turtle.home()
>>> turtle.left(90)
>>> turtle.heading()
90.0
>>> turtle.radians()
>>> turtle.heading()
1.5707963267948966
4、笔控制函数
turtle.pendown()
turtle.pd()
turtle.down()
放下笔
turtle.penup()
turtle.pu()
turtle.up()
抬起笔
turtle.pensize(width=None)
turtle.width(width=None)
设置笔的粗细
turtle.pen()
以字典的形式返回或设置笔的属性,字典是以下键值对的形式:
True/False
True/False
:
:
:
:
:
:
color-string or color-tuple
color-string or color-tuple
"shown"
"pendown"
"pencolor"
"fillcolor"
"pensize"
"speed"
"resizemode" :
"stretchfactor": (positive number, positive number)
"shearfactor":
"outline"
:
:
"tilt"
positive number
number in range 0..10
"auto" or "user" or "noresize"
number
positive number
number