少儿python编程之海龟自定义图形

python的海龟作图模块新建一个海龟相当于新建一个角色,我们可以给它换其它图形,以改变它的样子。
getshapes()命令能获取当前所有的图形,用一个列表显示出每个名字。要改变角色的图形用shape命令即可。
如果用上ontimer命令,就能不断地给角色更换图形,从而实现动画效果。

#下面是python自定义海龟图形源代码示例:

   
""" 068_自定义海龟图形.py
    python的海龟画图能加载外部的图片做为海龟本身的图形,也能自己画一个图做为海龟对象的形状。
    海龟的图形存放在一个列表里,我们能用getshapes()命令查看这个列表里有些什么图形。
    本节课让海龟首先画一个正方形,然后把这个正方形做为海龟本身的图形。
    
"""
from turtle import *
print("海龟本来的图形:",getshapes())
#以下是画一个图形,用来注册做海龟的图形的。
形状=Turtle()     #新建‘形状’海龟,它的使命就是画一个正方形,然后被注册到海龟的图形列表。
形状.begin_poly() #开始记录多边形的顶点,当前的海龟位置是第一个顶点,做为图形旋转中心。
形状.begin_fill() #开始填充图形,不填充也是可以的。
for i in range(4): #让i依次的值为0,1,2,3,让for语句组重复4次
    形状.fd(100)
    形状.right(90)
形状.end_fill()   #结束填充 
形状.end_poly()   #结束记录多边形的顶点。
p = 形状.get_poly()  #得到刚才所画的图形的每个顶点,形成元组,放到变量p这里。
print("p是:",p)
print()
print("p是一个元组,它记录了多边形的每个顶点的坐标值。")
register_shape("正方形", p)  #注册p为正方形的名称,以后就能用它做海龟本身的图形了。

#input("输入任意键继续...")
形状.clear()
形状.hideturtle() #名字叫‘形状’的海龟完成了任务,把它隐藏起来。
del 形状          #名字叫'形状‘的海龟完成了任务,我们不仅仅把它隐藏,而且把它给删除。


#下面是建立一个叫正方形1的海龟对象,让它的形状为刚才定义的 正方形。
正方形1=Turtle(shape='正方形')
正方形1.pencolor("cyan")
正方形1.fillcolor("green")

def 旋转正方形():
    正方形1.right(10)
    ontimer(旋转正方形,10)
旋转正方形()


#input("输入任意键继续...")

#问题:

#即然p是一个元组,里面存储的是每个坐标点,那么我们能不能自己直接定义一个有各个顶点的元组呢?
#所以,我们不必要新建所谓的‘形状’海龟了
#我们直接定义一个元组即可,下面是一个例子
#这里定义一个元组也叫p,它的第一个项目是(0,0),第二个项目是(0,100)
#当用register_shape注册时它的第一个项目就是旋转中心。

p=((0,0),(0,100))
addshape("线条", p)             #用addshape也可以
print("\n所有的形状为:",getshapes())
条子=Turtle(shape='线条')
条子.pensize(5)
条子.pencolor("red") 
条子.penup()
条子.goto(0,200)

def 旋转条子():
    条子.right(10)
    ontimer(旋转条子,10)
旋转条子()


少儿python编程培训预订开始,单击链接享受优惠:https://item.taobao.com/item.htm?id=544061935133

运行后是这样的,单击才能看到动画效果,因为这是缩略图: