turtle.begin_poly()
开始记录多边形的顶点。当前海龟位置为多边形的第一个顶点。
turtle.end_poly()
停止记录多边形的顶点。当前海龟位置为多边形的最后一个顶点。它将连线到第一个顶点。
turtle.get_poly()
返回最新记录的多边形
运行以下程序观察结果:
import turtle
turtle.shape("turtle")
turtle.begin_poly()
turtle.forward(100)
print(turtle.get_poly())
turtle.end_poly()
turtle.done()
turtle.clone()
创建并返回海龟的克隆体,具有相同的位置、朝向和海龟属性
turtle.getturtle()
简:turtle.getpen()
返回海龟对象自身。唯一合理的用法: 作为一个函数来返回 “匿名海龟”
clone()与getturtle()
clone克隆的是turtle的父类,即类Turtle
getturtle返回的是turtle
import turtle
from turtle import Turtle
mick = Turtle()
mick.forward(100)
print("mick is at ", mick.position())
joe = mick.clone()
print("joe is at ", joe.position())
mick.forward(100)
print("="*15+" after change "+"="*15)
print("mick is at ", mick.position())
print("joe is at ", joe.position())
print("="*15+" getturtle "+"="*15)
pet = turtle.getturtle()
print("pet is at ", pet.position())
pet.left(90)
pet.forward(50)
print("pet is at ", pet.position())
turtle.done()
turtle.getscreen()
返回作为海龟绘图场所的 TurtleScreen 类对象
turtle.setundobuffer(size)
参数
size – 一个整型数值或 None
size 表示可使用 undo() 方法/函数撤消的海龟命令的次数上限
设置或禁用撤消缓冲区
如果 size 为一个整型数则将开辟一个指定大小的空缓冲区
如果 size 为 None 则禁用撤消缓冲区
turtle.undobufferentries()
返回撤销缓冲区里的条目数
运行以下程序观察结果:
import turtle
from turtle import Turtle
mick = Turtle()
mick.forward(100)
print("mick is at ", mick.position())
joe = mick.clone()
print("joe is at ", joe.position())
mick.forward(100)
print("="*15+" after change "+"="*15)
print("mick is at ", mick.position())
print("joe is at ", joe.position())
print("="*15+" getturtle "+"="*15)
pet = turtle.getturtle()
print("pet is at ", pet.position())
pet.left(90)
pet.forward(50)
print("pet is at ", pet.position())
print(turtle.getscreen(), ' ', mick.getscreen())
turtle.setundobuffer(10)
print(turtle.undobufferentries())
for i in range(4):
turtle.forward(100)
turtle.left(90)
for i in range(3):
turtle.undo()
print(turtle.undobufferentries())
turtle.done()
可以发现turtle.getscreen(), mick.getscreen()返回的数值是一样的,而他们的父类都是Turtle
所以getscreen()获得的TurtleScreen对象是与Turtle相关
复合形状
要使用由多个不同颜色多边形构成的复合海龟形状,必须明确地使用辅助类 Shape,具体步骤如下:
- 创建一个空 Shape 对象,类型为 “compound”。
- 按照需要使用 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”)
接下来将 Shape 对象添加到 Screen 对象的形状列表并使用它:
register_shape(“myshape”, s)
shape(“myshape”)