turtle - RawTurtle/Turtle 方法和对应函数[详解]

海龟动作

forward(distance)
fd(distance)
参数
distance - 一个数值 (整型或浮点型)
海龟前进 distance 指定的距离,方向为海龟的朝向。

back(distance)
bk(distance)
backward(distance)
参数
distance - 一个数值
海龟后退 distance 指定的距离,方向与海龟的朝向相反。不改变海龟的朝向。

right(angle)
rt(angle)
参数
angle -- 一个数值 (整型或浮点型)
海龟右转 angle 个单位。(单位默认为角度,但可通过 degrees() 和 radians() 函数改变设置。) 角度的正负由海龟模式确定,参见 mode()。

left(angle)
lt(angle)
参数
angle - 一个数值 (整型或浮点型)
海龟左转 angle 个单位。(单位默认为角度,但可通过 degrees() 和 radians() 函数改变设置。) 角度的正负由海龟模式确定,参见 mode()。

goto(xy=None)
setpos(xy=None)
setposition(xy=None)
参数
x - 一个数值或数值对/向量
y - 一个数值或 None
如果 y 为 None,x 应为一个表示坐标的数值对或 Vec2D 类对象 (例如 pos() 返回的对象).
海龟移动到一个绝对坐标。如果画笔已落下将会画线。不改变海龟的朝向。

setx(x)
参数
x - 一个数值 (整型或浮点型)
设置海龟的横坐标为 x,纵坐标保持不变。

sety(y)
参数
y - 一个数值 (整型或浮点型)
设置海龟的纵坐标为 y,横坐标保持不变。

setheading(to_angle)
seth(to_angle)
参数
to_angle -- 一个数值 (整型或浮点型)
设置海龟的朝向为 to_angle。以下是以角度表示的几个常用方向:
标准模式    logo 模式
0     - 东     0     - 北
90   - 北     90   - 东
180 - 西     180 - 南
270 - 南     270 - 西

home()
海龟移至初始坐标 (0,0),并设置朝向为初始方向 (由海龟模式确定,参见 mode())。

circle(radiusextent=Nonesteps=None)
参数
radius - 一个数值
extent - 一个数值 (或 None)
steps - 一个整型数 (或 None)
绘制一个 radius 指定半径的圆。圆心在海龟左边 radius 个单位;extent 为一个夹角,用来决定绘制圆的一部分。如未指定 extent*则绘制整个圆。如果 *extent 不是完整圆周,则以当前画笔位置为一个端点绘制圆弧。如果 radius 为正值则朝逆时针方向绘制圆弧,否则朝顺时针方向。最终海龟的朝向会依据 extent 的值而改变。
圆实际是以其内切正多边形来近似表示的,其边的数量由 steps 指定。如果未指定边数则会自动确定。此方法也可用来绘制正多边形。

dot(size=None*color)
参数
size - 一个整型数 >= 1 (如果指定)
color - 一个颜色字符串或颜色数值元组
绘制一个直径为 size,颜色为 color 的圆点。如果 size 未指定,则直径取 pensize+4 和 2*pensize 中的较大值。

stamp()
在海龟当前位置印制一个海龟形状。返回该印章的 stamp_id,印章可以通过调用 clearstamp(stamp_id) 来删除。

clearstamp(stampid)
参数
stampid - 一个整型数,必须是之前 stamp() 调用的返回值
删除 stampid 指定的印章。

clearstamps(n=None)
参数
n - 一个整型数 (或 None)
删除全部或前/后 n 个海龟印章。如果 n 为 None 则删除全部印章,如果 n > 0 则删除前 n 个印章,否则如果 n < 0 则删除后 n 个印章。

undo()
撤消 (或连续撤消) 最近的一个 (或多个) 海龟动作。可撤消的次数由撤消缓冲区的大小决定。

speed(speed=None)
参数
speed - 一个 0..10 范围内的整型数或速度字符串 (见下)
设置海龟移动的速度为 0..10 表示的整型数值。如未指定参数则返回当前速度。
如果输入数值大于 10 或小于 0.5 则速度设为 0。速度字符串与速度值的对应关系如下:
"fastest": 0 最快
"fast": 10 快
"normal": 6 正常
"slow": 3 慢
"slowest": 1 最慢
速度值从 1 到 10,画线和海龟转向的动画效果逐级加快。
注意: speed = 0 表示 没有 动画效果。forward/back 将使海龟向前/向后跳跃,同样的 left/right 将使海龟立即改变朝向。

获取海龟的状态

position()
pos()
返回海龟当前的坐标 (x,y) (为 Vec2D 矢量类对象)。

towards(xy=None)
参数
x - 一个数值或数值对/矢量,或一个海龟实例
y - 一个数值——如果 x 是一个数值,否则为 None
从海龟位置到由 (x,y),矢量或另一海龟对应位置的连线的夹角。此数值依赖于海龟初始朝向 - 由 "standard"/"world" 或 "logo" 模式设置所决定)。

xcor()
返回海龟的 x 坐标。

ycor()
返回海龟的 y 坐标。

heading()
返回海龟当前的朝向 (数值依赖于海龟模式参见 mode())。

distance(xy=None)
参数
x - 一个数值或数值对/矢量,或一个海龟实例
y - 一个数值——如果 x 是一个数值,否则为 None
返回从海龟位置到由 (x,y),适量或另一海龟对应位置的单位距离。

度量单位设置

degrees(fullcircle=360.0)
参数
fullcircle - 一个数值
设置角度的度量单位,即设置一个圆周为多少 "度"。默认值为 360 度。

radians()
设置角度的度量单位为弧度。其值等于 degrees(2*math.pi)。

画笔控制

        绘图状态

pendown()
pd()
down()
画笔落下 -- 移动时将画线。

penup()
pu()
up()
画笔抬起 -- 移动时不画线。

pensize(width=None)
width(width=None)
参数
width - 一个正数值
设置线条的粗细为 width 或返回该值。如果 resizemode 设为 "auto" 并且 turtleshape 为多边形,该多边形也以同样组细的线条绘制。如未指定参数,则返回当前的 pensize。

pen(pen=None**pendict)
参数
pen - 一个包含部分或全部下列键的字典
pendict - 一个或多个以下列键为关键字的关键字参数
返回或设置画笔的属性,以一个包含以下键值对的 "画笔字典" 表示:
"shown": True/False
"pendown": True/False
"pencolor": 颜色字符串或颜色元组
"fillcolor": 颜色字符串或颜色元组
"pensize": 正数值
"speed": 0..10 范围内的数值
"resizemode": "auto" 或 "user" 或 "noresize"
"stretchfactor": (正数值, 正数值)
"outline": 正数值
"tilt": 数值
此字典可作为后续调用 pen() 时的参数,以恢复之前的画笔状态。另外还可将这些属性作为关键词参数提交。使用此方式可以用一条语句设置画笔的多个属性。

isdown()
如果画笔落下返回 True,如果画笔抬起返回 False。

        颜色控制

pencolor(*args)
返回或设置画笔颜色。
允许以下四种输入格式:
pencolor()
返回以颜色描述字符串或元组 (见示例) 表示的当前画笔颜色。可用作其他 color/pencolor/fillcolor 调用的输入。
pencolor(colorstring)
设置画笔颜色为 colorstring 指定的 Tk 颜色描述字符串,例如 "red"、"yellow" 或 "#33cc8c"。
pencolor((r, g, b))
设置画笔颜色为以 rgb 元组表示的 RGB 颜色。rgb 的取值范围应为 0..colormode,colormode 的值为 1.0 或 255 (参见 colormode())。
pencolor(r, g, b)
设置画笔颜色为以 rgb 表示的 RGB 颜色。rgb 的取值范围应为 0..colormode。
如果 turtleshape 为多边形,该多边形轮廓也以新设置的画笔颜色绘制。

fillcolor(*args)
返回或设置填充颜色。
允许以下四种输入格式:
fillcolor()
返回以颜色描述字符串或元组 (见示例) 表示的当前填充颜色。可用作其他 color/pencolor/fillcolor 调用的输入。
fillcolor(colorstring)
设置填充颜色为 colorstring 指定的 Tk 颜色描述字符串,例如 "red"、"yellow" 或 "#33cc8c"。
fillcolor((r, g, b))
设置填充颜色为以 rgb 元组表示的 RGB 颜色。rgb 的取值范围应为 0..colormode,colormode 的值为 1.0 或 255 (参见 colormode())。
fillcolor(r, g, b)
设置填充颜色为 rgb 表示的 RGB 颜色。rgb 的取值范围应为 0..colormode。
如果 turtleshape 为多边形,该多边形内部也以新设置的填充颜色填充。

color(*args)
返回或设置画笔颜色和填充颜色。
允许多种输入格式。使用如下 0 至 3 个参数:
color()
返回以一对颜色描述字符串或元组表示的当前画笔颜色和填充颜色,两者可分别由 pencolor() 和 fillcolor() 返回。
color(colorstring), color((r,g,b)), color(r,g,b)
输入格式与 pencolor() 相同,同时设置填充颜色和画笔颜色为指定的值。
color(colorstring1, colorstring2), color((r1,g1,b1), (r2,g2,b2))
相当于 pencolor(colorstring1) 加 fillcolor(colorstring2),使用其他输入格式的方法也与之类似。
如果 turtleshape 为多边形,该多边形轮廓与填充也使用新设置的颜色。
另参见: Screen 方法 colormode()。

        填充

filling()
返回填充状态 (填充为 True,否则为 False)。

begin_fill()
在绘制要填充的形状之前调用。

end_fill()
填充上次调用 begin_fill() 之后绘制的形状。
自相交多边形或多个形状间的重叠区域是否填充取决于操作系统的图形引擎、重叠的类型以及重叠的层数。 例如上面的 Turtle 多芒星可能会全部填充为黄色,也可能会有一些白色区域。

        更多绘图控制

reset()
从屏幕中删除海龟的绘图,海龟回到原点并设置所有变量为默认值。

clear()
从屏幕中删除指定海龟的绘图。不移动海龟。海龟的状态和位置以及其他海龟的绘图不受影响。

write(argmove=Falsealign="left"font=("Arial"8"normal"))
参数
arg -- 要书写到 TurtleScreen 的对象
move -- True/False
align -- 字符串 "left", "center" 或 "right"
font -- 一个三元组 (fontname, fontsize, fonttype)
书写文本 - arg 指定的字符串 - 到当前海龟位置,align 指定对齐方式 ("left", "center" 或 right"),font 指定字体。如果 move 为 True,画笔会移动到文本的右下角。默认 move 为 False。

海龟状态

        可见性

hideturtle()
ht()
使海龟不可见。当你绘制复杂图形时这是个好主意,因为隐藏海龟可显著加快绘制速度。

showturtle()
st()
使海龟可见。

isvisible()
如果海龟显示返回 True,如果海龟隐藏返回 False。

        外观

shape(name=None)
参数
name - 一个有效的形状名字符串
设置海龟形状为 name 指定的形状名,如未指定形状名则返回当前的形状名。name 指定的形状名应存在于 TurtleScreen 的 shape 字典中。多边形的形状初始时有以下几种: "arrow", "turtle", "circle", "square", "triangle", "classic"。要了解如何处理形状请参看 Screen 方法 register_shape()。

resizemode(rmode=None)
参数
rmode - 字符串 "auto", "user", "noresize" 其中之一
设置大小调整模式为以下值之一: "auto", "user", "noresize"。如未指定 rmode 则返回当前的大小调整模式。不同的大小调整模式的效果如下:
"auto": 根据画笔粗细值调整海龟的外观。
"user": 根据拉伸因子和轮廓宽度 (outline) 值调整海龟的外观,两者是由 shapesize() 设置的。
"noresize": 不调整海龟的外观大小。
大小调整模式 ("user") 会在 shapesize() 带参数调用时生效。

shapesize(stretch_wid=Nonestretch_len=Noneoutline=None)
turtlesize(stretch_wid=Nonestretch_len=Noneoutline=None)
参数
stretch_wid - 正数值
stretch_len - 正数值
outline - 正数值
返回或设置画笔的属性 x/y-拉伸因子和/或轮廓。设置大小调整模式为 "user"。当且仅当大小调整模式设为 "user" 时海龟会基于其拉伸因子调整外观: stretch_wid 为垂直于其朝向的宽度拉伸因子,stretch_len 为平等于其朝向的长度拉伸因子,决定形状轮廓线的粗细。

shearfactor(shear=None)
参数
shear - 数值 (可选)
设置或返回当前的剪切因子。根据 share 指定的剪切因子即剪切角度的切线来剪切海龟形状。 改变海龟的朝向 (移动方向)。如未指定 shear 参数: 返回当前的剪切因子即剪切角度的切线,与海龟朝向平行的线条将被剪切。

tilt(angle)
参数
angle - 一个数值
海龟形状自其当前的倾角转动 angle 指定的角度,但  改变海龟的朝向 (移动方向)。

settiltangle(angle)
参数
angle - 一个数值
旋转海龟形状使其指向 angle 指定的方向,忽略其当前的倾角, 改变海龟的朝向 (移动方向)。
3.1 版后已移除.

tiltangle(angle=None)
参数
angle - 一个数值 (可选)
设置或返回当前的倾角。如果指定 angle 则旋转海龟形状使其指向 angle 指定的方向,忽略其当前的倾角。 改变海龟的朝向 (移动方向)。如果未指定 angle: 返回当前的倾角,即海龟形状的方向和海龟朝向 (移动方向) 之间的夹角。

shapetransform(t11=Nonet12=Nonet21=Nonet22=None)
参数
t11 - 一个数值 (可选)
t12 - 一个数值 (可选)
t21 - 一个数值 (可选)
t12 - 一个数值 (可选)
设置或返回海龟形状的当前变形矩阵。
如不指定任何矩阵元素,则返回以4元素元组表示的变形矩阵。否则使用指定元素设置变形矩阵改变海龟形状,矩阵第一排的值为 t11, t12,第二排的值为 t21, t22。行列式 t11 * t22 - t12 * t21 的值不能为零,否则会出错。根据指定的矩阵修改拉伸因子,剪切因子和倾角。

get_shapepoly()
返回以坐标值对元组表示的当前形状多边形。这可以用于定义一个新形状或一个复合形状的多个组成部分。

使用事件

onclick(funbtn=1add=None)
参数
fun - 一个函数,调用时将传入两个参数表示在画布上点击的坐标。
btn - 鼠标按钮编号,默认值为 1 (鼠标左键)
add - True 或 False -- 如为 True 则将添加一个新绑定,否则将取代先前的绑定
将 fun 指定的函数绑定到鼠标点击此海龟事件。如果 fun 值为 None,则移除现有的绑定。

onrelease(funbtn=1add=None)
参数
fun - 一个函数,调用时将传入两个参数表示在画布上点击的坐标。
btn - 鼠标按钮编号,默认值为 1 (鼠标左键)
add - True 或 False -- 如为 True 则将添加一个新绑定,否则将取代先前的绑定
将 fun 指定的函数绑定到在此海龟上释放鼠标按键事件。如果 fun 值为 None,则移除现有的绑定。

ondrag(funbtn=1add=None)
参数
fun - 一个函数,调用时将传入两个参数表示在画布上点击的坐标。
btn - 鼠标按钮编号,默认值为 1 (鼠标左键)
add - True 或 False -- 如为 True 则将添加一个新绑定,否则将取代先前的绑定
将 fun 指定的函数绑定到在此海龟上移动鼠标事件。如果 fun 值为 None,则移除现有的绑定。
注: 在海龟上移动鼠标事件之前应先发生在此海龟上点击鼠标事件。
在此之后点击并拖动海龟可在屏幕上手绘线条 (如果画笔为落下)。

特殊海龟方法

begin_poly()
开始记录多边形的顶点。当前海龟位置为多边形的第一个顶点。

end_poly()
停止记录多边形的顶点。当前海龟位置为多边形的最后一个顶点。它将连线到第一个顶点。

get_poly()
返回最新记录的多边形。

clone()
创建并返回海龟的克隆体,具有相同的位置、朝向和海龟属性。

getturtle()
getpen()
返回海龟对象自身。唯一合理的用法: 作为一个函数来返回 "匿名海龟"。

getscreen()
返回作为海龟绘图场所的 TurtleScreen 类对象。该对象将可调用 TurtleScreen 方法。

setundobuffer(size)
参数
size - 一个整型数值或 None
设置或禁用撤消缓冲区。如果 size 为一个整型数则将开辟一个指定大小的空缓冲区。size 表示可使用 undo() 方法/函数撤消的海龟命令的次数上限。如果 size 为 None 则禁用撤消缓冲区。

undobufferentries()
返回撤销缓冲区里的条目数。

复合形状

要使用由多个不同颜色多边形构成的复合海龟形状,你必须明确地使用辅助类 Shape,具体步骤如下:
1. 创建一个空 Shape 对象,类型为 "compound"。
2. 按照需要使用 addcomponent() 方法向此对象添加多个部件。
3. 接下来将 Shape 对象添加到 Screen 对象的形状列表并使用它。
注解
Shape 类在 register_shape() 方法的内部以多种方式使用。应用程序编写者 只有 在使用上述的复合形状时才需要处理 Shape 类。

===
内容来源:官方文库
牛猫名言:最好的资料就是官方文档
===
本文链接:https://www.jianshu.com/p/4d406925894e
转载请注明,谢谢!
编辑:牛猫大侠

你可能感兴趣的:(turtle - RawTurtle/Turtle 方法和对应函数[详解])