Turtle库学习--特殊的海龟

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,具体步骤如下:

  1. 创建一个空 Shape 对象,类型为 “compound”。
  2. 按照需要使用 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”)

猜你喜欢

转载自blog.csdn.net/hide_in_darkness/article/details/107632591