绘图工具--turtle模块

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"))
原文地址:https://www.cnblogs.com/zhuluqing/p/9005562.html