turtle模块内shape('turtle')方法可以让海龟呈现,stamp()方法可以使用海龟在画布盖章。
1.让海龟呈现同时在画布盖章。
# 让海龟呈现同时在画布盖章
import random
import turtle
# turtle模块内shape('turtle')方法可以让海龟呈现,stamp()方法可以使用海龟在画布盖章。
t = turtle.Pen()
t.shape('turtle')
colorlist = ['yellow', 'black', 'gold', 'pink', 'gray', 'red', 'orange', 'aqua', 'green']
for angle in range(0, 361, 15):
i = random.randint(0, 8)
cr = colorlist[i]
t.color(cr)
t.forward(100)
t.stamp()
t.home() # 此函数用于将海龟移动到原点,即坐标(0,0)。无论如何, turtle 的位置都是默认方向(朝东),设置为(0,0)。
t.seth(angle) # 调整海龟方向
绘制效果:
2.clearstamps(n)如果n=None可以清除画布上所有的海龟,如果n是正值,可以清除前n个海龟,如果n是负值,可以清除后n个海龟。如果海龟在画布盖章时有设定返回值,如stampID=t.stamp(),未来也可以使用clearstamp(stampID)将这个特定的海龟盖章删除。
首先绘制3个海龟,然后将自己隐藏起来,过5秒后先删除第2只海龟,再过5秒删除其他2只海龟。
import turtle
import time
t = turtle.Pen()
t.color('blue')
t.shape('turtle')
firstStamp = t.stamp() # 盖章第一只海龟
t.forward(100)
secondStamp = t.stamp() # 盖章第二只海龟
t.forward(100)
thirdStamp = t.stamp() # 盖章第三只海龟
t.hideturtle() # 隐藏目前海龟
time.sleep(5)
t.clearstamp(secondStamp) # 删除第二只海龟
time.sleep(5)
t.clearstamps(None)
time.sleep(3) # 观察最后画布情况
绘制效果:
3.隐藏与显示海龟:上述代码中hideturtle()是隐藏海龟的方法,未来若是想显示海龟可以使用showturtle()方法。isvisible()可以检查目前程序是否显示海龟,如果显示可以返回True,如果没有显示则返回False。
先盖章第一只海龟并打印是否显示海龟光标,结果会是True。然后盖章第2只海龟并隐藏海龟光标,这时打印是否显示海龟光标,结果是False。然后删除最后一只海龟即第二只海龟。最后显示海龟光标,这时打印是否显示海龟光标结果便是True。
import turtle
import time
t = turtle.Pen()
t.color('red')
t.shape('turtle')
t.stamp() # 盖章第一只海龟
print("目前是否有显示海龟:", t.isvisible())
t.forward(100)
second = t.stamp() # 盖章第二只海龟
time.sleep(3)
t.hideturtle() # 隐藏目前海龟
print("目前是否有显示海龟:", t.isvisible())
t.clearstamps(-1) # 删除后面一个海龟
time.sleep(3)
t.showturtle() # 显示海龟
print("目前是否有显示海龟:", t.isvisible())
time.sleep(3) # 观察最后画布情况
绘制效果:
4.认识所有的海龟光标:screen.getshapes()方法可以列出所有的海龟光标。
列出所以海龟光标字符串与相对应的光标外型。
# 列出所有的海龟光标字符串,与相对应的光标外型。
import turtle, time
t = turtle.Pen()
t.color('blue')
print(t.screen.getshapes())
for cursor in t.screen.getshapes():
t.shape(cursor) # 更改海龟光标
t.stamp() # 海龟光标盖章
t.forward(30)
time.sleep(3) # 观察最后画布情况
绘制效果:
光标外型:
我们也可以使用下列方式将任意图片当作海龟光标,不过图片不会在我们转动海龟时随着转动。
screen.register_shape("图片名称")
或者我们也可以使用下列方式自建一个图形当海龟光标。
screen.('myshape', ((3, -3), (0, 3), (-3, -3)))
用上面第一个例子来试一下吧:
图片格式一定要是.gif格式的!!!
# 让海龟呈现同时在画布盖章
import random
import time
import turtle
# turtle模块内shape('turtle')方法可以让海龟呈现,stamp()方法可以使用海龟在画布盖章。
t = turtle.Pen()
screen = turtle.Screen()
screen.register_shape("dog.gif")
t.shape('dog.gif')
colorlist = ['yellow', 'black', 'gold', 'pink', 'gray', 'red', 'orange', 'aqua', 'green']
for angle in range(0, 361, 30):
i = random.randint(0, 8)
cr = colorlist[i]
t.color(cr)
t.forward(200)
t.stamp()
t.home() # 此函数用于将海龟移动到原点,即坐标(0,0)。无论如何, turtle 的位置都是默认方向(朝东),设置为(0,0)。
t.seth(angle) # 调整海龟方向
time.sleep(5)
绘制效果: