
上QQ阅读APP看书,第一时间看更新
3.4 趣味练习
本节的趣味练习引入一个Python中的绘图模块,它会创造一个画布并附有画笔,允许我们对画笔编程,先来看程序3.12。
程序3.12:

输出,如图3.16所示:

图3.16 程序3.12输出结果
点睛:
首先我们将模块turtle引入,它是这个画图程序用到的模块,接着我们将变量t定义为画笔,在for循环的迭代过程中不断地在画布中画圆,可以看到,在循环的迭代中使用circle()指定了在画布中画的是一个圆,同时传入参数100表示这个圆的半径为100个单位,left(60)表示将画图的起笔逆时针旋转60°,这个会影响到下次画图位置。
输出图3.16(a)是绘图的过程,图3.16(b)是最后完成时的图像。实际运行只会输出一个画图界面。
接下来我们再来看看趣味程序3.13,从程序的角度来说,相比于程序3.12它更为丰满。
程序3.13:

输出,如图3.17所示:

图3.17 程序3.13输出结果
点睛:
有了程序3.12的铺垫,理解程序3.13并不算难,在这里我们只对设置画笔部分简单分析一下。程序的第6行设置了画笔的粗细,第8行设置了在每次迭代中要向前画出的长度,第9行设置了下次画图时的偏转方向,在画图时可以根据需要更改它的值。
输出图3.17中只是截取了画笔在工作时某一瞬间的图像,它是一个动图。
趣味一刻:
如果将程序3.12第4行改为t.circle(−100),程序3.13第8行改为t.forward(−x*2)的话,对应的输出图像会有什么效果?