turtle库使用——认识与操作海龟图像

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)

绘制效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨小古

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值