小海龟历险记
Shawn
python3.7
文档:
https://docs.python.org/3/library/turtle.html
- 想象一下,把一个小海龟扔到沙滩上.小海龟爬啊爬,沙滩上留下来一道道痕迹,这就是turtle模块.
小海龟的动作
爬行
前进:forward/fd
turtle.forward(distance)
turtle.fd(distance)
Parameters: distance – a number (integer or float)
- 小海龟朝当前方向向前爬行.
后退:back/bk/backward
turtle.back(distance)
turtle.bk(distance)
turtle.backward(distance)
Parameters: distance – a number (integer or float)
- 小海龟向后爬行.
右拐(顺时针转):right/rt
turtle.right(angle)
turtle.rt(angle)
Parameters: distance – a number (integer or float)
- 小海龟顺指针转向.
左拐(逆时针转):left/lt
turtle.left(angle)
turtle.lt(angle)
Parameters: angle – a number (integer or float)
- 小海龟逆时针转向.
爬到指定位置:goto/setpos/setposition
turtle.goto(x, y=None)
turtle.setpos(x, y=None)
turtle.setposition(x, y=None)
Parameters:
x – a number or a pair/vector of numbers
y – a number or None
- 小海龟爬到指定的坐标位置.
x轴上移动:setx
turtle.setx(x)
Parameters: x – a number (integer or float)
- 小海龟横向爬行.
y轴上移动:sety
turtle.sety(y)
Parameters: y – a number (integer or float)
- 小海龟纵向爬行.
转向指定方向:setheading/seth
turtle.setheading(to_angle)
turtle.seth(to_angle)
Parameters: to_angle – a number (integer or float)
- 小海龟朝向指定方向.
- 注意,默认的方向可能有所不同:
standard mode | logo mode |
---|---|
0 - east | 0 - north |
90 - north | 90 - east |
180 - west | 180 - south |
270 - south | 270 - west |
回家:home
turtle.home()
- 小海龟回到图像原点(0,0),并朝向默认初始方向.
画圆:circle
turtle.circle(radius, extent=None, steps=None)
Parameters:
radius – a number
extent – a number (or None)
steps – an integer (or None)
- 小海龟从当前位置开始向前画半径为radius,角度为extent的圆弧.
- radius为正,则逆时针,反之顺时针.
- 在turtle里,本质上,画圆弧相当于画n段直线.
- 用steps可以指定n的数量.换而言之,可以用于实现一些多边形.
画点:dot
turtle.dot(size=None, *color)
Parameters:
size – an integer >= 1 (if given)
color – a colorstring or a numeric color tuple
- 在当前位置画一个直径为size,颜色为color的点.
- 如果没有指定size,会默认选择max(当前笔粗+4,当前笔粗*2)
海龟分身:stamp
turtle.stamp()
- 在当前位置保存一个一模一样小海龟幻象,并返回这个幻象的id.
分身解除:clearstamp
turtle.clearstamp(stampid)
Parameters: stampid – an integer, must be return value of previous stamp() call
- 根据id解除海龟分身.
批量分身解除:clearstamps
turtle.clearstamps(n=None)
Parameters: n – an integer (or None)
- 批量解除分身.
- 默认全部,若n为正则解除最早n个,为负责解除最晚n个.
时光回溯:undo
turtle.undo()
- 每执行一次可以回到上一步的状态.
调速:speed
turtle.speed(speed=None)
Parameters: speed – an integer in the range 0..10 or a speedstring (see below)
- “fastest”: 0
- “fast”: 10
- “normal”: 6
- “slow”: 3
“slowest”: 1
调节小海龟爬行以及转向的速度.
- 从1到10逐步加快,也可以设定为最快:0.
- 注意:小于等于0.5或者大于10都会被直接设定为0
海龟状态查询
海龟位置:position/pos
turtle.position()
turtle.pos()
- 返回小海龟当前的位置.
小海龟的头部与目标间的角度:towards
turtle.towards(x, y=None)
Parameters:
x – a number or a pair/vector of numbers or a turtle instance
y – a number if x is a number, else None
- 返回小海龟当前方向与指定坐标(或者另一个海龟实体)连线的夹角.
x坐标查询:xcor
turtle.xcor()
- 返回x坐标.
y坐标查询:ycor
turtle.ycor()
- 返回y坐标.
当前方向:heading
turtle.heading()
- 返回小海龟当前方向.
距离查询:distance
turtle.distance(x, y=None)
Parameters:
x – a number or a pair/vector of numbers or a turtle instance
y – a number if x is a number, else None
- 返回小海龟与指定坐标(或者另一个海龟实体)间的距离.
定制规则
一圈有多少度:degrees
turtle.degrees(fullcircle=360.0)
Parameters: fullcircle – a number
- 设定一圈有多少度.如果你填400,那在小海龟的世界里一圈会被划分成400份而不是360份.
用弧度:radians
turtle.radians()
- 设定用弧度而不是角度.
画笔
- 好吧,可爱的小海龟现在终于变成画笔了.
下笔(肚皮贴地):pendown/pd/down
turtle.pendown()
turtle.pd()
turtle.down()
- 开始画出移动轨迹.
抬笔(肚皮离地):penup/pu/up
turtle.penup()
turtle.pu()
turtle.up()
- 移动时不画线了.
笔粗:pensize/width
turtle.pensize(width=None)
turtle.width(width=None)
Parameters: width – a positive number
- 设定画笔的粗细.
- 如果无参数,返回当前笔粗.
画笔(海龟)状态总控:pen
turtle.pen(pen=None, **pendict)
Parameters:
pen – a dictionary with some or all of the below listed keys
pendict – one or more keyword-arguments with