python中海龟绘图之海龟印章
当想“印”一个可独立删除的静态图形而不是画线或点就适合用 stamp()。1 stamp()的用法stamp_id turtle.stamp()在当前海龟位置将海龟形状的一个副本印在画布上返回该印章的stamp_id。代码如图1所示。图1 stamp()的用法其中第4行代码将海龟印章印在起点位置其id为id1。代码运行的效果如图2所示。图2 代码运行效果从图2中可以看出右侧为当前海龟左侧是在起点的印章。2 clearstamp()的用法clearstamp()的用法如下所示。turtle.clearstamp(stamp_id)clearstamp()的作用是删除参数stamp_id指定的海龟印章。代码如图3所示。图3 clearstamp()的用法其中图3所示的代码是图1代码的基础上添加了第6行代码。第6行代码通过turtle.ontimer创建了一个定时器当1000毫秒之后调用lambda指定的匿名函数该匿名函数的作用是删除id1指定的海龟印章也就是起始位置处的印章。代码运行的效果如图4所示。图4 代码运行效果3 clearstamps()的用法clearstamps()函数的作用是批量删除印章其格式如下所示。turtle.clearstamps(nNone)如果 n 为 None则删除所有印章如果 n 0则删除前 n 个印章如果 n 0则删除后 n 个印章。代码如图5所示。图5 clearstamps()的用法其中第4-6行代码使用for循环创建了4个海龟印章。第8行代码创建定时器在1000毫秒后调用clearstamps()删除所有印章。代码运行效果如图6所示。图6 删除所有印章的效果将图5中第8行代码的t.clearstamps()的参数设置为2表示删除前两个海龟印章代码运行效果如图7所示。图7 删除前两个印章的效果将图5中第8行代码的t.clearstamps()的参数设置为-2表示删除后两个海龟印章代码运行效果如图8所示。图8 删除后两个印章的效果4 小结turtle库的stamp()函数可以将海龟印章打印到海龟当前位置处该函数的返回值是印章的id。clearstamp()函数删除指定的印章。clearstamps()函数可以批量删除印章。stamp()、clearstamp()和clearstamps()一般用于需要留下标记但不画线、重复绘制相同图案、保留位置记录以便后期删除以及制作动画或临时高亮等场合。