turtle
---turtle图案¶
源代码: Lib/turtle.py
介绍¶
乌龟图形是一种向孩子们介绍编程的流行方式。它是1967年由Wally Feurzeig、Seymour Papert和Cynthia Solomon开发的原始徽标编程语言的一部分。
想象一只机器龟在X-Y平面上从(0,0)开始。后一 import turtle
给它命令 turtle.forward(15)
,它会移动(在屏幕上!)在它所面向的方向上15个像素,移动时画一条线。给它命令 turtle.right(25)
顺时针旋转25度。
通过将这些命令和类似命令组合在一起,可以很容易地绘制出复杂的形状和图片。
这个 turtle
模块是对同一命名模块从Python标准发行版到Python2.5版的扩展重新实现。
它试图保持旧turtle模块的优点,并(几乎)100%兼容它。这意味着,首先使学习程序员能够在使用模块时交互地使用所有的命令、类和方法,从空闲运行到 -n
开关。
Turtle模块以面向对象和面向过程的方式提供Turtle图形原语。因为它使用 tkinter
对于底层图形,它需要一个安装有tk支持的python版本。
面向对象接口基本上使用两个+两个类:
这个
TurtleScreen
类将图形窗口定义为绘制turtle的操场。其构造函数需要tkinter.Canvas
或AScrolledCanvas
作为参数。应该在以下情况下使用turtle
用作某些应用程序的一部分。函数
Screen()
返回TurtleScreen
子类。此函数应在以下情况下使用:turtle
用作独立的图形处理工具。作为单例对象,不可能从其类继承。Turtlescreen/screen的所有方法也作为函数存在,即作为面向过程的接口的一部分。
RawTurtle
(别名:RawPen
)定义绘制在TurtleScreen
. 它的构造函数需要一个画布、滚动的canvas或Turtlescreen作为参数,因此rawturtle对象知道在哪里绘制。派生自rawturtle是子类
Turtle
(别名:Pen
,它引用了“the”Screen
如果尚未存在,则自动创建的实例。rawturtle/turtle的所有方法也作为函数存在,即面向过程的接口的一部分。
过程接口提供从类的方法派生的函数 Screen
和 Turtle
. 它们与相应的方法具有相同的名称。每当调用从screen方法派生的函数时,都会自动创建screen对象。每当调用从Turtle方法派生的任何函数时,都会自动创建一个(未命名的)Turtle对象。
要在屏幕上使用多个turtle,必须使用面向对象的界面。
注解
在以下文档中,给出了函数的参数列表。当然,方法有附加的第一个参数 self 这里省略了。
可用的turtle和筛网方法概述¶
龟法¶
- 龟运动
- 移动和绘制
- 告诉turtle的状态
- 设置和测量
- 笔控制
- 绘图状态
- 色彩控制
- 填满
- 更多绘图控件
- turtle状态
- 能见度
- 外观
- 使用事件
- 特殊龟法
高台筛/筛网方法¶
- 窗口控制
- 动画控件
- 使用屏幕事件
- 设置和特殊方法
- 输入法
- 特定于筛选的方法
龟/龟的方法及其功能¶
本节中的大多数示例都涉及一个名为 turtle
.
龟运动¶
- turtle.forward(distance)¶
- turtle.fd(distance)¶
- 参数
distance -- 数字(整数或浮点)
将turtle向前移动指定的 距离 朝着turtle的方向。
>>> 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向后移动 距离 与turtle前进方向相反。不要改变turtle的航向。
>>> turtle.position() (0.00,0.00) >>> turtle.backward(30) >>> turtle.position() (-30.00,0.00)
- turtle.right(angle)¶
- turtle.rt(angle)¶
- 参数
angle -- 数字(整数或浮点)
把turtle右转 角 单位。(单位默认为度,但可以通过
degrees()
和radians()
功能。)角度方向取决于turtle模式,请参见mode()
.>>> turtle.heading() 22.0 >>> turtle.right(45) >>> turtle.heading() 337.0
- turtle.left(angle)¶
- turtle.lt(angle)¶
- 参数
angle -- 数字(整数或浮点)
把turtle左转 角 单位。(单位默认为度,但可以通过
degrees()
和radians()
功能。)角度方向取决于turtle模式,请参见mode()
.>>> 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)¶
- 参数
x -- 数字或数字对/矢量
y -- 一个数字或
None
如果 y 是
None
, x 必须是一对坐标或Vec2D
(例如,由pos()
)把turtle移到绝对位置。如果笔落下,画线。不要改变turtle的方位。
>>> 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)¶
- 参数
x -- 数字(整数或浮点)
将turtle的第一个坐标设置为 x ,保持第二个坐标不变。
>>> turtle.position() (0.00,240.00) >>> turtle.setx(10) >>> turtle.position() (10.00,240.00)
- turtle.sety(y)¶
- 参数
y -- 数字(整数或浮点)
将turtle的第二个坐标设置为 y ,保持第一个坐标不变。
>>> turtle.position() (0.00,40.00) >>> turtle.sety(-10) >>> turtle.position() (0.00,-10.00)
- turtle.setheading(to_angle)¶
- turtle.seth(to_angle)¶
- 参数
to_angle -- 数字(整数或浮点)
将turtle的方向设置为 to_angle . 以下是一些常见的度数方向:
标准模式
标志模式
0东
0北
90北
90东
180西
180南
270南
270西
>>> turtle.setheading(90) >>> turtle.heading() 90.0
- turtle.home()¶
将Turtle移动到原点(坐标(0,0)并将其方向设置为起始方向(取决于模式,请参见
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 -- 一个数字
extent -- 一个数字(或)
None
)steps -- 整数(或
None
)
画一个给定的圆 半径 . 中心是 半径 龟的剩余单位; 程度 --角度——决定画圆的哪个部分。如果 程度 如果没有给出,则绘制整个圆。如果 程度 不是整圆,圆弧的一个端点是当前笔的位置。如果 半径 为正,否则为顺时针方向。最后,龟的方向被 程度 .
因为圆是由内接的正多边形来近似的, 步骤 确定要使用的步骤数。如果没有给出,将自动计算。可用于绘制规则多边形。
>>> 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) # draw a semicircle >>> turtle.position() (0.00,240.00) >>> turtle.heading() 180.0
- turtle.dot(size=None, *color)¶
- 参数
size -- 一个大于等于1的整数(如果给定)
color -- 颜色字符串或数字颜色元组
画一个直径为的圆点 size 使用 颜色 . 如果 size 如果没有给出,则使用最大压力+4和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形状的副本。返回该图章的图章ID,可通过调用
clearstamp(stamp_id)
.>>> turtle.color("blue") >>> turtle.stamp() 11 >>> turtle.fd(50)
- turtle.clearstamp(stampid)¶
- 参数
stampid -- 整数,必须是上一个的返回值
stamp()
调用
删除给定的标记 雄蕊 .
>>> 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.clearstamps(n=None)¶
- 参数
n -- 整数(或
None
)
删除全部或第一个/最后一个 n turtle的邮票。如果 n 是
None
,删除所有邮票,如果 n >0先删除 n 邮票,否则如果 n < 0删除最后 n 邮票。>>> for i in range(8): ... turtle.stamp(); turtle.fd(30) 13 14 15 16 17 18 19 20 >>> turtle.clearstamps(2) >>> turtle.clearstamps(-2) >>> turtle.clearstamps()
- turtle.undo()¶
撤消(重复)最后一个turtle动作。可用的撤消操作数由UndoBuffer的大小决定。
>>> for i in range(4): ... turtle.fd(50); turtle.lt(80) ... >>> for i in range(8): ... turtle.undo()
- turtle.speed(speed=None)¶
- 参数
speed -- 0..10或speedString范围内的整数(见下文)
将turtle的速度设置为介于0到10之间的整数值。如果没有给出参数,则返回当前速度。
如果输入值大于10或小于0.5,则速度设置为0。速度字符串映射到速度值,如下所示:
“最快”:0
“快速”:10
“正常”:6
“慢”:3
“最慢”:1
从1到10的速度执行越来越快的线绘制和turtle转动动画。
注意: 速度 =0表示 no 动画发生。向前/向后使turtle跳跃,同样向左/向右使turtle立即转向。
>>> turtle.speed() 3 >>> turtle.speed('normal') >>> turtle.speed() 6 >>> turtle.speed(9) >>> turtle.speed() 9
告诉turtle的状态¶
- turtle.towards(x, y=None)¶
- 参数
x -- 数字或数字对/矢量或turtle实例
y -- 数字中频 x 是个数字,否则
None
返回从海龟位置到(x,y)、向量或另一个海龟指定的位置的直线之间的角度。这取决于海龟的起始方向,这取决于模式-“标准”/“世界”或“标志”。
>>> 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当前的航向(值取决于turtle模式,请参见
mode()
)>>> turtle.home() >>> turtle.left(67) >>> turtle.heading() 67.0
- turtle.distance(x, y=None)¶
- 参数
x -- 数字或数字对/矢量或turtle实例
y -- 数字中频 x 是个数字,否则
None
返回从turtle到(x,y)、给定向量或给定其他turtle的距离,以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
测量设置¶
- turtle.degrees(fullcircle=360.0)¶
- 参数
fullcircle -- 一个数字
设置角度测量单位,即设置整圈的“度数”。默认值为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()¶
将角度测量单位设置为弧度。相当于
degrees(2*math.pi)
.>>> turtle.home() >>> turtle.left(90) >>> turtle.heading() 90.0 >>> turtle.radians() >>> turtle.heading() 1.5707963267948966
笔控制¶
绘图状态¶
- turtle.pensize(width=None)¶
- turtle.width(width=None)¶
- 参数
width -- 一个正数
将线条粗细设置为 宽度 或者归还它。如果resizemode设置为“auto”,并且套头衫形状是多边形,则该多边形将以相同的线条粗细绘制。如果没有给定参数,则返回当前Pensize。
>>> turtle.pensize() 1 >>> turtle.pensize(10) # from here on lines of width 10 are drawn
- turtle.pen(pen=None, **pendict)¶
- 参数
pen -- 包含以下部分或全部键的字典
pendict -- 一个或多个关键字参数,其关键字如下所列
使用以下键/值对在“笔字典”中返回或设置笔的属性:
“显示”:真/假
“PenDown”:真/假
“pencolor”:颜色字符串或颜色元组
“FillColor”:颜色字符串或颜色元组
“pensize”:正数
“速度”:数值在0到10之间
“resizemode”:“auto”或“user”或“noresize”
“StretchFactor”:(正数,正数)
“轮廓”:正数
“倾斜”:数字
此字典可以用作后续调用的参数
pen()
恢复以前的笔状态。此外,这些属性中的一个或多个可以作为关键字参数提供。这可用于在一条语句中设置多个笔属性。>>> turtle.pen(fillcolor="black", pencolor="red", pensize=10) >>> sorted(turtle.pen().items()) [('fillcolor', 'black'), ('outline', 1), ('pencolor', 'red'), ('pendown', True), ('pensize', 10), ('resizemode', 'noresize'), ('shearfactor', 0.0), ('shown', True), ('speed', 9), ('stretchfactor', (1.0, 1.0)), ('tilt', 0.0)] >>> penstate=turtle.pen() >>> turtle.color("yellow", "") >>> turtle.penup() >>> sorted(turtle.pen().items())[:3] [('fillcolor', ''), ('outline', 1), ('pencolor', 'yellow')] >>> turtle.pen(penstate, fillcolor="green") >>> sorted(turtle.pen().items())[:3] [('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]
- turtle.isdown()¶
返回
True
如果钢笔掉了,False
如果它上升了。>>> turtle.penup() >>> turtle.isdown() False >>> turtle.pendown() >>> turtle.isdown() True
色彩控制¶
- turtle.pencolor(*args)¶
返回或设置铅笔颜色。
允许四种输入格式:
pencolor()
以颜色规范字符串或元组的形式返回当前铅笔颜色(参见示例)。可以用作其他颜色/铅笔颜色/填充颜色调用的输入。
pencolor(colorstring)
设置铅笔 色串 ,它是tk颜色规格字符串,例如
"red"
,"yellow"
或"#33cc8c"
.pencolor((r, g, b))
将Pencolor设置为由元组表示的RGB颜色 r , g 和 b . 每一个 r , g 和 b 必须在0..ColorMode范围内,其中ColorMode为1.0或255(请参见
colormode()
)pencolor(r, g, b)
将Pencolor设置为由表示的RGB颜色 r , g 和 b . 每一个 r , g 和 b 必须在0..ColorMode范围内。
如果高领形状是多边形,则该多边形的轮廓将使用新设置的铅笔颜色绘制。
>>> colormode() 1.0 >>> turtle.pencolor() 'red' >>> turtle.pencolor("brown") >>> turtle.pencolor() 'brown' >>> tup = (0.2, 0.8, 0.55) >>> turtle.pencolor(tup) >>> turtle.pencolor() (0.2, 0.8, 0.5490196078431373) >>> colormode(255) >>> turtle.pencolor() (51.0, 204.0, 140.0) >>> turtle.pencolor('#32c18f') >>> turtle.pencolor() (50.0, 193.0, 143.0)
- turtle.fillcolor(*args)¶
返回或设置填充颜色。
允许四种输入格式:
fillcolor()
返回当前的fillColor作为颜色规范字符串,可能是元组格式(参见示例)。可以用作其他颜色/铅笔颜色/填充颜色调用的输入。
fillcolor(colorstring)
将FillColor设置为 色串 ,它是tk颜色规格字符串,例如
"red"
,"yellow"
或"#33cc8c"
.fillcolor((r, g, b))
将FillColor设置为由元组表示的RGB颜色 r , g 和 b . 每一个 r , g 和 b 必须在0..ColorMode范围内,其中ColorMode为1.0或255(请参见
colormode()
)fillcolor(r, g, b)
将FillColor设置为由表示的RGB颜色 r , g 和 b . 每一个 r , g 和 b 必须在0..ColorMode范围内。
如果高领形状是多边形,则该多边形的内部将使用新设置的FillColor绘制。
>>> turtle.fillcolor("violet") >>> turtle.fillcolor() 'violet' >>> turtle.pencolor() (50.0, 193.0, 143.0) >>> turtle.fillcolor((50, 193, 143)) # Integers, not floats >>> turtle.fillcolor() (50.0, 193.0, 143.0) >>> turtle.fillcolor('#ffffff') >>> turtle.fillcolor() (255.0, 255.0, 255.0)
- turtle.color(*args)¶
返回或设置铅笔颜色和填充颜色。
允许多种输入格式。它们使用0到3个参数,如下所示:
color()
将当前Pencolor和当前FillColor作为一对颜色规范字符串或元组返回,返回方式为
pencolor()
和fillcolor()
.color(colorstring)
,color((r,g,b))
,color(r,g,b)
输入为
pencolor()
,将fillColor和pencolor都设置为给定值。color(colorstring1, colorstring2)
,color((r1,g1,b1), (r2,g2,b2))
相当于
pencolor(colorstring1)
和fillcolor(colorstring2)
类似地,如果使用其他输入格式。
如果高领毛衣形状是多边形,则该多边形的轮廓和内部将用新设置的颜色绘制。
>>> turtle.color("red", "green") >>> turtle.color() ('red', 'green') >>> color("#285078", "#a0c8f0") >>> color() ((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))
另请参见:屏幕方法 colormode()
.
填满¶
- turtle.filling()¶
返回填充状态 (
True
如果填充,False
否则)。>>> turtle.begin_fill() >>> if turtle.filling(): ... turtle.pensize(5) ... else: ... turtle.pensize(3)
- turtle.begin_fill()¶
在绘制要填充的形状之前调用。
- turtle.end_fill()¶
填充上次调用后绘制的形状
begin_fill()
.是否填充自相交多边形或多个形状的重叠区域取决于操作系统图形、重叠类型和重叠数。例如,上面的海龟星可能全部是黄色,也可能有一些白色区域。
>>> turtle.color("black", "red") >>> turtle.begin_fill() >>> turtle.circle(80) >>> turtle.end_fill()
更多绘图控件¶
- turtle.reset()
从屏幕上删除turtle的图形,将turtle重新居中,并将变量设置为默认值。
>>> turtle.goto(0,-22) >>> turtle.left(100) >>> turtle.position() (0.00,-22.00) >>> turtle.heading() 100.0 >>> turtle.reset() >>> turtle.position() (0.00,0.00) >>> turtle.heading() 0.0
- turtle.clear()
从屏幕上删除turtle的图纸。不要移动turtle。turtle的状态和位置以及其他turtle的图纸不受影响。
- turtle.write(arg, move=False, align='left', font=('Arial', 8, 'normal'))¶
- 参数
arg -- 要写入到高台屏幕的对象
move -- 对/错
align -- “左”、“中”或“右”字符串之一
font -- 三重(fontname、fontsize、fonttype)
写入文本-的字符串表示形式 arg -在当前的乌龟位置,根据 对齐 (“左”、“中”或“右”)和给定字体。如果 move 为true,则钢笔将移动到文本的右下角。默认情况下, move 是
False
。>>> turtle.write("Home = ", True, align="center") >>> turtle.write((0,0), True)
turtle状态¶
能见度¶
- turtle.hideturtle()¶
- turtle.ht()¶
让turtle隐形。这是一个好主意,当你正在做一些复杂的绘图,因为隐藏turtle明显加快了绘图。
>>> turtle.hideturtle()
- turtle.isvisible()¶
返回
True
如果有turtle出现,False
如果它被隐藏了。>>> turtle.hideturtle() >>> turtle.isvisible() False >>> turtle.showturtle() >>> turtle.isvisible() True
外观¶
- turtle.shape(name=None)¶
- 参数
name -- 有效形状名的字符串
将turtle形状设置为给定形状 name 或者,如果未指定名称,则返回当前形状的名称。形状与 name 必须存在于Turtlescreen的形状字典中。最初有以下多边形形状:“箭头”、“turtle”、“圆”、“正方形”、“三角形”、“经典”。要了解如何处理形状,请参见屏幕方法
register_shape()
.>>> turtle.shape() 'classic' >>> turtle.shape("turtle") >>> turtle.shape() 'turtle'
- turtle.resizemode(rmode=None)¶
- 参数
rmode -- 字符串“auto”、“user”、“noresize”之一
将resizemode设置为以下值之一:“auto”、“user”、“noresize”。如果 rMODE 未给定,返回当前的ResizeMode。不同的ResizeMode具有以下效果:
“自动”:适应turtle的外观,与压力值相对应。
“用户”:根据StretchFactor和OutlineWidth(Outline)的值调整turtle的外观,该值由
shapesize()
.“诺雷西泽”:turtle的外表没有任何变化。
resizemode("user")
由以下人员调用shapesize()
当与参数一起使用时。>>> turtle.resizemode() 'noresize' >>> turtle.resizemode("auto") >>> turtle.resizemode() 'auto'
- turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None)¶
- turtle.turtlesize(stretch_wid=None, stretch_len=None, outline=None)¶
- 参数
stretch_wid -- 正数
stretch_len -- 正数
outline -- 正数
返回或设置笔的属性x/y-拉伸因子和/或轮廓。将ResizeMode设置为“用户”。如果且仅当ResizeMode设置为“用户”,则turtle将根据其拉伸系数显示拉伸: stretch_wid 是垂直于其方向的拉伸系数, stretch_len 是方向上的拉伸系数, 概述 确定形状轮廓的宽度。
>>> turtle.shapesize() (1.0, 1.0, 1) >>> turtle.resizemode("user") >>> turtle.shapesize(5, 5, 12) >>> turtle.shapesize() (5, 5, 12) >>> turtle.shapesize(outline=8) >>> turtle.shapesize() (5, 5, 8)
- turtle.shearfactor(shear=None)¶
- 参数
shear -- 数字(可选)
设置或返回当前剪切因子。根据给定的剪切系数(剪切角的正切值)剪切套头衫形状。做 not 改变turtle的方向(移动方向)。如果没有给定剪切力:返回当前剪切系数,即剪切角的切线,通过该切线剪切平行于turtle头部的线。
>>> turtle.shape("circle") >>> turtle.shapesize(5,2) >>> turtle.shearfactor(0.5) >>> turtle.shearfactor() 0.5
- turtle.tilt(angle)¶
- 参数
angle -- 一个数字
将高领衫形状旋转 角 从它当前的倾斜角度,但是 not 改变turtle的方向(移动方向)。
>>> turtle.reset() >>> turtle.shape("circle") >>> turtle.shapesize(5,2) >>> turtle.tilt(30) >>> turtle.fd(50) >>> turtle.tilt(30) >>> turtle.fd(50)
- turtle.settiltangle(angle)¶
- 参数
angle -- 一个数字
将套头衫形状旋转到指定方向 角 无论其当前倾斜角度如何。 不 改变turtle的方向(移动方向)。
>>> turtle.reset() >>> turtle.shape("circle") >>> turtle.shapesize(5,2) >>> turtle.settiltangle(45) >>> turtle.fd(50) >>> turtle.settiltangle(-45) >>> turtle.fd(50)
3.1 版后已移除.
- turtle.tiltangle(angle=None)¶
- 参数
angle -- 数字(可选)
设置或返回当前倾斜角度。如果给定了角度,则将套头衫旋转到角度指定的方向,而不考虑当前的倾斜角度。做 not 改变turtle的方向(移动方向)。如果没有给定角度:返回当前的倾斜角度,也就是说,turtle形状的方向和它的头部(它的运动方向)之间的角度。
>>> turtle.reset() >>> turtle.shape("circle") >>> turtle.shapesize(5,2) >>> turtle.tilt(45) >>> turtle.tiltangle() 45.0
- turtle.shapetransform(t11=None, t12=None, t21=None, t22=None)¶
- 参数
t11 -- 数字(可选)
t12 -- 数字(可选)
t21 -- 数字(可选)
t12 -- 数字(可选)
设置或返回turtle形状的当前转换矩阵。
如果没有给定任何矩阵元素,则将转换矩阵作为4个元素的元组返回。否则,设置给定元素并根据由第一行t11、t12和第二行t21、t22组成的矩阵变换乌龟形状。行列式T11 * t22 - t12 * T21不能为零,否则会引发错误。根据给定的矩阵修改拉伸因子、剪切因子和倾斜度。
>>> turtle = Turtle() >>> turtle.shape("square") >>> turtle.shapesize(4,2) >>> turtle.shearfactor(-0.5) >>> turtle.shapetransform() (4.0, -1.0, -0.0, 2.0)
- turtle.get_shapepoly()¶
返回当前形状多边形作为坐标对的元组。这可用于定义新形状或复合形状的组件。
>>> turtle.shape("square") >>> turtle.shapetransform(4, -1, 0, 2) >>> turtle.get_shapepoly() ((50, -20), (30, 20), (-50, 20), (-30, -20))
使用事件¶
- turtle.onclick(fun, btn=1, add=None)
- 参数
fun -- 带有两个参数的函数,将使用画布上单击点的坐标调用该函数。
btn -- 鼠标按钮的数目,默认为1(鼠标左键)
add --
True
或False
——如果True
,将添加新绑定,否则将替换以前的绑定。
束缚 fun 鼠标点击这只turtle上的事件。如果 fun 是
None
,将删除现有绑定。匿名turtle的例子,即程序方式:>>> def turn(x, y): ... left(180) ... >>> onclick(turn) # Now clicking into the turtle will turn it. >>> onclick(None) # event-binding will be removed
- turtle.onrelease(fun, btn=1, add=None)¶
- 参数
fun -- 带有两个参数的函数,将使用画布上单击点的坐标调用该函数。
btn -- 鼠标按钮的数目,默认为1(鼠标左键)
add --
True
或False
——如果True
,将添加新绑定,否则将替换以前的绑定。
束缚 fun 鼠标按钮释放turtle上的事件。如果 fun 是
None
,将删除现有绑定。>>> class MyTurtle(Turtle): ... def glow(self,x,y): ... self.fillcolor("red") ... def unglow(self,x,y): ... self.fillcolor("") ... >>> turtle = MyTurtle() >>> turtle.onclick(turtle.glow) # clicking on turtle turns fillcolor red, >>> turtle.onrelease(turtle.unglow) # releasing turns it to transparent.
- turtle.ondrag(fun, btn=1, add=None)¶
- 参数
fun -- 带有两个参数的函数,将使用画布上单击点的坐标调用该函数。
btn -- 鼠标按钮的数目,默认为1(鼠标左键)
add --
True
或False
——如果True
,将添加新绑定,否则将替换以前的绑定。
束缚 fun 鼠标移动这只turtle上的事件。如果 fun 是
None
,将删除现有绑定。备注:turtle上的每一个鼠标移动事件序列前面都有一个鼠标单击事件。
>>> turtle.ondrag(turtle.goto)
随后,点击并拖动turtle会将其在屏幕上移动,从而生成手绘(如果笔已放下)。
特殊龟法¶
- turtle.begin_poly()¶
开始记录多边形的顶点。当前turtle的位置是多边形的第一个顶点。
- turtle.end_poly()¶
停止记录多边形的顶点。当前turtle位置是多边形的最后一个顶点。这将与第一个顶点连接。
- turtle.get_poly()¶
返回最后记录的多边形。
>>> turtle.home() >>> turtle.begin_poly() >>> turtle.fd(100) >>> turtle.left(20) >>> turtle.fd(30) >>> turtle.left(60) >>> turtle.fd(50) >>> turtle.end_poly() >>> p = turtle.get_poly() >>> register_shape("myFavouriteShape", p)
- turtle.clone()¶
创建并返回具有相同位置、标题和turtle属性的turtle复制。
>>> mick = Turtle() >>> joe = mick.clone()
- turtle.getturtle()¶
- turtle.getpen()¶
返回turtle对象本身。仅合理使用:作为返回“匿名turtle”的函数:
>>> pet = getturtle() >>> pet.fd(50) >>> pet <turtle.Turtle object at 0x...>
- turtle.getscreen()¶
返回
TurtleScreen
turtle正在画的物体。然后可以为该对象调用Turtlescreen方法。>>> ts = turtle.getscreen() >>> ts <turtle._Screen object at 0x...> >>> ts.bgcolor("pink")
- turtle.setundobuffer(size)¶
- 参数
size -- 整数或
None
设置或禁用撤消缓冲区。如果 size 为整数,则安装给定大小的空撤消缓冲区。 size 可以撤消的最大海龟动作数。
undo()
方法/函数。如果 size 是None
,则撤消缓冲区被禁用。>>> turtle.setundobuffer(42)
- turtle.undobufferentries()¶
返回UndoBuffer中的条目数。
>>> while undobufferentries(): ... undo()
复合形¶
要使用由多个不同颜色的多边形组成的复合turtle形状,必须使用助手类 Shape
具体如下:
创建“复合”类型的空形状对象。
根据需要向此对象添加尽可能多的组件,使用
addcomponent()
方法。例如:
>>> s = Shape("compound") >>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5)) >>> s.addcomponent(poly1, "red", "blue") >>> poly2 = ((0,0),(10,-5),(-10,-5)) >>> s.addcomponent(poly2, "blue", "red")
现在将形状添加到屏幕的形状列表中并使用它:
>>> register_shape("myshape", s) >>> shape("myshape")
注解
这个 Shape
类在内部由 register_shape()
方法不同。应用程序程序员必须处理形状类 only 当使用上面所示的复合形状时!
高台筛/筛网的方法及相应功能¶
本节中的大多数示例都涉及一个名为 screen
.
窗口控制¶
- turtle.bgcolor(*args)¶
- 参数
args -- 颜色字符串或0..colormode范围内的三个数字或此类数字的三元组
设置或返回高台屏幕的背景色。
>>> screen.bgcolor("orange") >>> screen.bgcolor() 'orange' >>> screen.bgcolor("#800080") >>> screen.bgcolor() (128.0, 0.0, 128.0)
- turtle.bgpic(picname=None)¶
- 参数
picname -- 一个字符串、一个GIF文件的名称或
"nopic"
或None
设置背景图像或返回当前背景图像的名称。如果 皮克特 是一个文件名,将相应的图像设置为背景。如果 皮克特 是
"nopic"
,删除背景图像(如果存在)。如果 皮克特 是None
,返回当前背景图像的文件名。::>>> screen.bgpic() 'nopic' >>> screen.bgpic("landscape.gif") >>> screen.bgpic() "landscape.gif"
- turtle.clear()¶
- turtle.clearscreen()¶
从turtle屏幕上删除所有图纸和所有turtle。将现在为空的Turtlescreen重置为其初始状态:白色背景、无背景图像、无事件绑定和跟踪。
注解
此Turtlescreen方法仅作为全局函数在名称下可用
clearscreen
. 全局函数clear
是从turtle的方法衍生出来的clear
.
- turtle.reset()¶
- turtle.resetscreen()¶
将屏幕上的所有turtle重置为初始状态。
注解
此Turtlescreen方法仅作为全局函数在名称下可用
resetscreen
. 全局函数reset
是从turtle法衍生出来的另一种方法吗?reset
.
- turtle.screensize(canvwidth=None, canvheight=None, bg=None)¶
- 参数
canvwidth -- 正整数,画布的新宽度(像素)
canvheight -- 正整数,画布的新高度(像素)
bg -- 颜色字符串或颜色元组,新背景色
如果没有给出参数,则返回当前值(canvasWidth、canvasHeight)。否则,调整turtle正在绘制的画布的大小。不要更改绘图窗口。要观察画布的隐藏部分,请使用滚动条。使用此方法,可以使以前在画布外的绘图部分可见。
>>> screen.screensize() (400, 300) >>> screen.screensize(2000,1500) >>> screen.screensize() (2000, 1500)
例如,寻找一只错误逃脱的turtle;—)
- turtle.setworldcoordinates(llx, lly, urx, ury)¶
- 参数
llx -- 一个数字,画布左下角的X坐标
lly -- 一个数字,画布左下角的Y坐标
urx -- 一个数字,画布右上角的X坐标
ury -- 一个数字,画布右上角的y坐标
设置用户定义的坐标系,必要时切换到“世界”模式。这执行了
screen.reset()
. 如果“世界”模式已激活,则所有图形都将根据新坐标重新绘制。ATTENTION :在用户定义的坐标系中,角度可能会出现扭曲。
>>> screen.reset() >>> screen.setworldcoordinates(-50,-7.5,50,7.5) >>> for _ in range(72): ... left(10) ... >>> for _ in range(8): ... left(45); fd(2) # a regular octagon
动画控件¶
- turtle.delay(delay=None)¶
- 参数
delay -- 正整数
设置或返回图形 延迟 以毫秒为单位。(这大约是两次连续画布更新之间的时间间隔。)绘图延迟越长,动画速度越慢。
可选参数:
>>> screen.delay() 10 >>> screen.delay(5) >>> screen.delay() 5
- turtle.tracer(n=None, delay=None)¶
- 参数
n -- 非负整数
delay -- 非负整数
打开/关闭Turtle动画并设置更新图形的延迟。如果 n 给出,只执行第n次常规屏幕更新。(可用于加速复杂图形的绘制。)当不带参数调用时,返回当前存储的n值。第二个参数设置延迟值(请参见
delay()
)>>> screen.tracer(8, 25) >>> dist = 2 >>> for i in range(200): ... fd(dist) ... rt(90) ... dist += 2
- turtle.update()¶
执行高领衫的更新。当跟踪程序关闭时使用。
另见Rawturtle/Turtle方法 speed()
.
使用屏幕事件¶
- turtle.onkey(fun, key)¶
- turtle.onkeyrelease(fun, key)¶
- 参数
fun -- 没有参数的函数或
None
key -- 字符串:键(如“A”)或键符号(如“空格”)。
束缚 fun 键的释放事件。如果 fun 是
None
,将删除事件绑定。备注:为了能够注册关键事件,高领衫必须有焦点。(见方法)listen()
)>>> def f(): ... fd(50) ... lt(60) ... >>> screen.onkey(f, "Up") >>> screen.listen()
- turtle.onkeypress(fun, key=None)¶
- 参数
fun -- 没有参数的函数或
None
key -- 字符串:键(如“A”)或键符号(如“空格”)。
束缚 fun 如果按键,则按键事件键;如果没有按键,则按键事件键。备注:为了能够注册关键事件,高领衫必须有焦点。(见方法)
listen()
)>>> def f(): ... fd(50) ... >>> screen.onkey(f, "Up") >>> screen.listen()
- turtle.onclick(fun, btn=1, add=None)¶
- turtle.onscreenclick(fun, btn=1, add=None)¶
- 参数
fun -- 带有两个参数的函数,将使用画布上单击点的坐标调用该函数。
btn -- 鼠标按钮的数目,默认为1(鼠标左键)
add --
True
或False
——如果True
,将添加新绑定,否则将替换以前的绑定。
束缚 fun 单击此屏幕上的事件。如果 fun 是
None
,将删除现有绑定。名为的TurtleScreen实例的示例
screen
和名为的Turtle实例turtle
:>>> screen.onclick(turtle.goto) # Subsequently clicking into the TurtleScreen will >>> # make the turtle move to the clicked point. >>> screen.onclick(None) # remove event binding again
注解
此Turtlescreen方法仅作为全局函数在名称下可用
onscreenclick
. 全局函数onclick
是从turtle法衍生出来的另一种方法吗?onclick
.
- turtle.ontimer(fun, t=0)¶
- 参数
fun -- 没有参数的函数
t -- 数字>0
安装一个调用 fun 之后 t 毫秒。
>>> running = True >>> def f(): ... if running: ... fd(50) ... lt(60) ... screen.ontimer(f, 250) >>> f() ### makes the turtle march around >>> running = False
输入法¶
- turtle.textinput(title, prompt)¶
- 参数
title -- string
prompt -- string
弹出一个输入字符串的对话框窗口。参数标题是对话框窗口的标题,提示是一个主要描述输入什么信息的文本。返回字符串输入。如果取消对话框,则返回
None
. ::>>> screen.textinput("NIM", "Name of first player:")
- turtle.numinput(title, prompt, default=None, minval=None, maxval=None)¶
- 参数
title -- string
prompt -- string
default -- 数字(可选)
minval -- 数字(可选)
maxval -- 数字(可选)
弹出一个用于输入数字的对话框窗口。标题是对话框窗口的标题,提示是一个主要描述要输入的数字信息的文本。默认值:默认值,minval:输入的最小值,maxval:输入的最大值数字输入必须在minval范围内。如果给出这些值,则为MaxVal。如果没有,将发出提示,对话框将保持打开状态以进行更正。返回数字输入。如果取消对话框,则返回
None
. ::>>> screen.numinput("Poker", "Your stakes:", 1000, minval=10, maxval=10000)
设置和特殊方法¶
- turtle.mode(mode=None)¶
- 参数
mode -- 字符串“Standard”、“Logo”或“World”之一
设置turtle模式(“标准”、“标志”或“世界”)并执行重置。如果没有给出模式,则返回当前模式。
“标准”模式与旧模式兼容
turtle
. “logo”模式与大多数turtle图案兼容。“世界”模式使用用户定义的“世界坐标”。 敬告 :在此模式下,如果x/y
单位比率不等于1。模式
初始turtle航向
正角度
“标准”
右边(东)
逆时针
“LOGO”
向上(北)
顺时针方向的
>>> mode("logo") # resets turtle heading to north >>> mode() 'logo'
- turtle.colormode(cmode=None)¶
- 参数
cmode -- 值1.0或255之一
返回颜色模式或将其设置为1.0或255。随后 r , g , b 颜色三倍值必须在0范围内。cMODE .
>>> screen.colormode(1) >>> turtle.pencolor(240, 160, 80) Traceback (most recent call last): ... TurtleGraphicsError: bad color sequence: (240, 160, 80) >>> screen.colormode() 1.0 >>> screen.colormode(255) >>> screen.colormode() 255 >>> turtle.pencolor(240,160,80)
- turtle.getcanvas()¶
把这个高领毛衣的画布还给我。对于知道如何处理tkinter画布的内部人员很有用。
>>> cv = screen.getcanvas() >>> cv <turtle.ScrolledCanvas object ...>
- turtle.getshapes()¶
返回当前所有可用turtle形状的名称列表。
>>> screen.getshapes() ['arrow', 'blank', 'circle', ..., 'turtle']
- turtle.register_shape(name, shape=None)¶
- turtle.addshape(name, shape=None)¶
调用此函数有三种不同的方法:
name 是GIF文件的名称,并且 形状 是
None
:安装相应的图像形状。::>>> screen.register_shape("turtle.gif")
注解
图像形状 不 转动turtle时旋转,这样它们就不会显示turtle的航向!
name 是任意字符串,并且 形状 是一组成对的坐标:安装相应的多边形形状。
>>> screen.register_shape("triangle", ((5,-3), (0,5), (-5,-3)))
name 是任意字符串,形状是(复合)
Shape
对象:安装相应的复合形状。
将turtle形状添加到Turtlescreen的形状列表中。发出命令时只能使用未注册的形状
shape(shapename)
.
- turtle.turtles()¶
返回屏幕上的turtle列表。
>>> for turtle in screen.turtles(): ... turtle.color("red")
- turtle.window_height()¶
返回turtle窗的高度。::
>>> screen.window_height() 480
- turtle.window_width()¶
返回turtle窗的宽度。::
>>> screen.window_width() 640
特定于筛选的方法,而不是从Turtlescreen继承的方法¶
- turtle.bye()¶
关闭“Turtlegraphics”窗口。
- turtle.exitonclick()¶
绑定
bye()
方法在屏幕上单击鼠标。如果配置字典中的“使用空闲”值为
False
(默认值),也输入mainloop。备注:如果闲置-n
使用了开关(无子进程),此值应设置为True
在里面turtle.cfg
. 在这种情况下,idle自己的mainloop对于客户机脚本也是活动的。
- turtle.setup(width=_CFG['width'], height=_CFG['height'], startx=_CFG['leftright'], starty=_CFG['topbottom'])¶
设置主窗口的大小和位置。参数的默认值存储在配置字典中,可以通过
turtle.cfg
文件。- 参数
width -- 如果是整数,则为像素大小,如果是浮点,则为屏幕的一部分;默认值为屏幕的50%。
height -- 如果是整数,则以像素为单位的高度,如果是浮点,则为屏幕的一部分;默认值为屏幕的75%
startx -- 如果为正,则从屏幕左边缘开始以像素为单位的位置,如果为负,则从右边缘开始,如果
None
,水平居中窗口starty -- 如果为正,则从屏幕上边缘开始以像素为单位的位置,如果为负,则从下边缘开始,如果
None
,垂直居中窗口
>>> screen.setup (width=200, height=200, startx=0, starty=0) >>> # sets window to 200x200 pixels, in upper left of screen >>> screen.setup(width=.75, height=0.5, startx=None, starty=None) >>> # sets window to 75% of screen by 50% of screen and centers
- turtle.title(titlestring)¶
- 参数
titlestring -- 显示在Turtle图形窗口标题栏中的字符串
将Turtle窗口的标题设置为 字串 .
>>> screen.title("Welcome to the turtle zoo!")
公共课¶
- class turtle.RawTurtle(canvas)¶
- class turtle.RawPen(canvas)¶
- 参数
canvas -- 一
tkinter.Canvas
,AScrolledCanvas
或ATurtleScreen
创造一只turtle。turtle有上述所有方法“turtle/生皮方法”。
- class turtle.TurtleScreen(cv)¶
- 参数
cv -- 一
tkinter.Canvas
提供面向屏幕的方法,如
setbg()
等等,上面描述的。
- class turtle.Screen¶
高脚甲亚纲 four methods added .
- class turtle.ScrolledCanvas(master)¶
- 参数
master -- 一些包含滚动canvas的tkinter小部件,即添加了滚动条的tkinter画布
在课堂屏幕上使用,它会自动提供一个滚动的画布作为turtle的游乐场。
- class turtle.Shape(type_, data)¶
- 参数
type_ -- 字符串“polygon”、“image”、“compound”之一
数据结构建模形状。这对
(type_, data)
必须遵守本规范:type_
data
"polygon"
多边形元组,即坐标对的元组
"image"
图像(此格式仅在内部使用!)
"compound"
None
(必须使用addcomponent()
方法)
- class turtle.Vec2D(x, y)¶
二维向量类,用作实现turtle图形的助手类。可能对turtle图形程序也很有用。从元组派生,所以向量是一个元组!
提供(用于) a , b 向量, k 数字):
a + b
向量加法a - b
矢量减法a * b
内积k * a
和a * k
乘标量abs(a)
A的绝对值a.rotate(angle)
旋转
帮助和配置¶
如何使用帮助¶
screen和turtle类的公共方法通过docstring被广泛记录。因此,这些可以通过python帮助工具用作联机帮助:
当使用idle时,工具提示显示在函数/方法调用中键入的docstrings的签名和第一行。
调用
help()
在方法或函数上,显示docstrings::>>> help(Screen.bgcolor) Help on method bgcolor in module turtle: bgcolor(self, *args) unbound turtle.Screen method Set or return backgroundcolor of the TurtleScreen. Arguments (if given): a color string or three numbers in the range 0..colormode or a 3-tuple of such numbers. >>> screen.bgcolor("orange") >>> screen.bgcolor() "orange" >>> screen.bgcolor(0.5,0,0.5) >>> screen.bgcolor() "#800080" >>> help(Turtle.penup) Help on method penup in module turtle: penup(self) unbound turtle.Turtle method Pull the pen up -- no drawing when moving. Aliases: penup | pu | up No argument >>> turtle.penup()
从方法派生的函数的DocString具有修改后的形式:
>>> help(bgcolor) Help on function bgcolor in module turtle: bgcolor(*args) Set or return backgroundcolor of the TurtleScreen. Arguments (if given): a color string or three numbers in the range 0..colormode or a 3-tuple of such numbers. Example:: >>> bgcolor("orange") >>> bgcolor() "orange" >>> bgcolor(0.5,0,0.5) >>> bgcolor() "#800080" >>> help(penup) Help on function penup in module turtle: penup() Pull the pen up -- no drawing when moving. Aliases: penup | pu | up No argument Example: >>> penup()
这些修改过的docstring与导入时从方法派生的函数定义一起自动创建。
将docstring翻译成不同语言¶
有一个实用程序可以创建一个字典,字典的键是方法名,其值是类screen和turtle的公共方法的docstring。
- turtle.write_docstringdict(filename='turtle_docstringdict')¶
- 参数
filename -- 用作文件名的字符串
创建docstring字典并将其写入具有给定文件名的python脚本。必须显式调用此函数(Turtle图形类不使用此函数)。docstring字典将写入python脚本
{filename}.py
. 它旨在作为将docstring翻译成不同语言的模板。
如果你(或你的学生)想使用 turtle
使用您的母语在线帮助,您必须翻译docstrings并将结果文件保存为例如。 turtle_docstringdict_german.py
.
如果您在 turtle.cfg
文件此词典将在导入时读取,并将替换原始的英文文档字符串。
写作时,有德语和意大利语的docstring字典。(请致电glingl@aon.at。)
如何配置屏幕和turtle¶
内置的默认配置模仿旧turtle模块的外观和行为,以保持与它的最佳兼容性。
如果您想使用不同的配置,更好地反映本模块的功能,或者更好地满足您的需求,例如在课堂上使用,您可以准备一个配置文件。 turtle.cfg
将在导入时读取,并根据其设置修改配置。
内置配置将对应于以下turtle.cfg::
width = 0.5
height = 0.75
leftright = None
topbottom = None
canvwidth = 400
canvheight = 300
mode = standard
colormode = 1.0
delay = 10
undobuffersize = 1000
shape = classic
pencolor = black
fillcolor = black
resizemode = noresize
visible = True
language = english
exampleturtle = turtle
examplescreen = screen
title = Python Turtle Graphics
using_IDLE = False
所选条目的简短说明:
前四行对应于
Screen.setup()
方法。第5行和第6行对应于方法的参数
Screen.screensize()
.形状 可以是任何内置形状,例如:箭头、turtle等。有关详细信息,请尝试
help(shape)
.如果你想不使用填充颜色(即使turtle透明),你必须写
fillcolor = ""
(但是所有非空字符串在cfg文件中不能有引号)。如果你想反映龟的状态,你必须使用
resizemode = auto
.如果你设置
language = italian
DocStringDictturtle_docstringdict_italian.py
将在导入时加载(如果导入路径上存在,例如,与turtle
.参赛作品 turtle 和 范例克里文 定义这些对象出现在docstrings中时的名称。将docStrings方法转换为函数docStrings将从docStrings中删除这些名称。
using_IDLE 设置为
True
如果您经常使用idle及其-n开关(“无子进程”)。这将阻止exitonclick()
进入主循环。
可以有一个 turtle.cfg
文件在目录中 turtle
存储在当前工作目录中,另外一个存储在当前工作目录中。后者将覆盖第一个设置。
这个 Lib/turtledemo
目录包含 turtle.cfg
文件。您可以作为一个例子来研究它,并在运行演示时看到它的效果(最好不要在演示查看器中)。
turtledemo
---演示脚本¶
这个 turtledemo
包中包含一组演示脚本。可以使用提供的演示查看器运行和查看这些脚本,如下所示:
python -m turtledemo
或者,您可以单独运行演示脚本。例如:
python -m turtledemo.bytedesign
这个 turtledemo
包目录包含:
演示阅读器
__main__.py
它可以用来查看脚本的源代码并同时运行它们。多个脚本演示了
turtle
模块。可以通过示例菜单访问示例。它们也可以独立运行。A
turtle.cfg
文件,作为如何写入和使用此类文件的示例。
演示脚本包括:
名字 |
描述 |
特征 |
---|---|---|
字节设计 |
复杂的经典turtle图案 |
|
混乱 |
图Verhulst动力学表明,计算机的计算有时会产生与常识预期相反的结果。 |
世界坐标 |
时钟 |
显示计算机时间的模拟时钟 |
turtle当钟的指针,奥蒂默 |
混色器 |
R、G、B实验 |
|
森林 |
3宽第一棵树 |
随机化 |
分形曲线 |
希尔伯特和科赫曲线 |
递归 |
林登迈耶 |
民族数学(印度科拉姆) |
L-系统 |
minimal_hanoi |
河內之塔 |
河内盘中的矩形turtle(形状,形状尺寸) |
尼姆 |
用三堆木棍对着电脑玩经典的尼姆游戏。 |
作为动画的turtle,事件驱动(鼠标、键盘) |
油漆 |
超简约绘图程序 |
|
和平 |
初级的 |
turtle:外观和动画 |
彭罗斯 |
用风筝和飞镖不定期铺切片 |
|
planet_and_moon |
引力系统模拟 |
复合形状, |
round_dance |
跳舞的turtle向相反的方向旋转 |
复合形状,复制形状大小,倾斜,获取形状多边形,更新 |
sorting_animate |
不同排序方法的可视化演示 |
简单排列,随机化 |
树 |
A(图形)宽度优先树(使用生成器) |
|
two_canvases |
简单设计 |
两幅油画上的turtle |
维基百科 |
维基百科关于turtle图形的文章中的一个模式 |
|
阴阳 |
另一个基本例子 |
|
玩得高兴!
自python 2.6以来的更改¶
方法
Turtle.tracer()
,Turtle.window_width()
andTurtle.window_height()
have been eliminated. Methods with these names and functionality are now available only as methods ofScreen
. The functions derived from these remain available. (In fact already in Python 2.6 these methods were merely duplications of the correspondingTurtleScreen
/Screen
-方法。方法
Turtle.fill()
已经被淘汰。行为begin_fill()
和end_fill()
有点变化:现在每个填充过程都必须用end_fill()
调用。一种方法
Turtle.filling()
已添加。它返回一个布尔值:True
如果正在进行填充过程,False
否则。这种行为对应于fill()
在python 2.6中不带参数调用。
自python 3.0以来的更改¶
方法
Turtle.shearfactor()
,Turtle.shapetransform()
和Turtle.get_shapepoly()
已添加。因此,现在可以对turtle形状进行全范围的规则线性变换。Turtle.tiltangle()
已经在功能上得到了增强:现在可以使用它来获取或设置倾斜角度。Turtle.settiltangle()
已弃用。方法
Screen.onkeypress()
已作为补充添加到Screen.onkey()
它实际上将动作绑定到keyrease事件。因此,后者有一个别名:Screen.onkeyrelease()
.方法
Screen.mainloop()
已添加。因此,当只处理屏幕和turtle对象时,不能另外导入mainloop()
不再。增加了两种输入法
Screen.textinput()
和Screen.numinput()
. 这些弹出式输入对话框分别返回字符串和数字。两个示例脚本
tdemo_nim.py
和tdemo_round_dance.py
已添加到Lib/turtledemo
目录。