
3.3 编程知识点
(1)函数left()和right()
前面我们介绍了设置画笔的绝对朝向函数setheading(),使用这个函数的前提是必须知道画笔朝向与横轴正向的夹角的准确值,否则图形会画乱。
有时候,我们需要画笔在当前方向上顺时针旋转或者逆时针旋转一个角度,这时计算画笔朝向与横轴正向的夹角较为困难,而使用与当前方向的夹角值计算比较容易。这就需要设置画笔的相对朝向。
turtle库的left()函数用来设置画笔以当前朝向为基础逆时针旋转一定的角度;turtle库的right()函数用来设置画笔以当前朝向为基础顺时针旋转一定的角度。
如图3-3所示的程序代码中,我们使用for循环画三条边,画第一条边的时候,画笔从原点(0,0)开始沿着横轴正向前行200像素,然后画笔朝向逆时针旋转120°(等边三角形的外角为120°),开始画第二条边;画笔继续前行200像素,画笔在当前方向的基础上再逆时针旋转120°,开始画第三条边;画笔前行200像素后,画笔朝向回到横轴正向的方向上。运行这段代码,画笔运行的轨迹和过程如图3-4所示。

图3-3 逆时针画等边三角形的程序代码

图3-4 程序运行过程:逆时针画等边三角形
如果把上面的程序代码中left()函数改成right()函数,程序代码如图3-5所示,画笔运行轨迹和过程如图3-6所示。

图3-5 顺时针画等边三角形的程序代码


图3-6 程序运行过程:顺时针画等边三角形
(2)函数speed()
turtle库里的函数speed()用来设置画笔移动速度,画笔绘制的速度为0到10之间的整数。数字越大移动速度越快。
(3)函数done()和bye()
函数done()和bye()用来关闭和退出turtle库,可以避免在使用完turtle库后继续占用计算资源和内存资源。它们不会产生任何画图动作,也不会有任何提示。在小的程序中不使用上述两函数并不影响程序的运行,但在规范化的大型程序设计中,养成使用完某一库后及时释放相应计算资源和内容的习惯是非常职业化的要求。