turtle模块主要使用两个类,一个是TurtleScreen类,表示画布(窗口),用来展示画的位置;一个是Turtle类,用来充当画笔,用来画。
两个类的方法也以同名的函数的形式存在,所以可以以面向过程的形式编程。但当需要多个Turtle对象的时候,其它的Turtle对象就必须以面向对象的形式编程了。
一、Turtle(画笔)的方法
1.forward(distance)|fd(distance) 正值表示向前运行,负值相当于backward()
2.backward(distance)|bk(distance)
3.setheading(angle) 设置乌龟朝向
4.goto(x,y) 直接移动到坐标(x,y)位置
5.left(angle)|lt(angle) 左转多少度,负值表示右转
6.right(angle)|rt(angle) 右转多少度
7.speed(x) 设置绘制的速度
8.circle(radius,angle,steps) 画圆,radius为正值,逆时针画圆弧,angle表示弧度大小,steps表示画出把圆弧分成steps份的多边形。
9.dot(radius,color)画点,半径radius,颜色color
10.home()画笔位置和方向回到初始状态
11.stamp()复制一个turtle,并在下一个turtle的位置显示,该函数返回一个标识代表复制的turtle,用clearstamp()删除
几个比较难理解的方法:
shape(appearance) 设置当前turtle的形象
resizemode(rmode) 设置turtle形象是否可调整。有三个模式:auto user noresize。其中user比较有意思,该模式可以条件turtle的长宽,外部轮廓线粗细,shear(扭曲度)
tilt(angle) 在当前龟头方向基础上转向angle角度(但不改变运动朝向)
settiltangle(angle)在原始方向基础上改变angle角度。
实践
1.注册一个turtle图像:
begin_poly()
fd(10)
lt(90)
fd(10)
end_poly()
p=get_poly()
register_shape('newshap',p)
这样就注册了一个新的turtle形象
可以通过shape('newshap')改变turtle的形象。
2.注册一个图形:
类Shape(mode,data)
参数1:‘polygon'、‘image'、'compound',分别表示图形是多边形,图片和复合图形
参数2:描述poly,image的数据,如((1,2),(4,5))和’flower.jpg',‘compound'不需要
当mode为‘compound’时,通过addcompound(poly,color,fillcolor)添加复合图形的组合元素。
s=Shape(mode,data)
register_shape('comp',s)
3.调用ontimer(f,time)
def f():
fd(20)
lt(30)
ontimer(f,240)
f()
ontimer必须写在函数内,进行循环调用,才能起到效果。
4.两个输入接口:
textinput(title,promt)
numinput(title,promt,default,min,max)
5.输出字符:
turtle.
write
(arg, move=False, align="left", font=("Arial", 8, "normal"))¶