在1966年,SeymourPapert和WallyFeurzig发明了一种专门给儿童学习编程的语言——LOGO语言,它的特色就是通过编程指挥一个小海龟(turtle)在屏幕上绘图。
海龟绘图(TurtleGraphics)后来被移植到各种高级语言中,Python内置了turtle库,基本上100%复制了原始的TurtleGraphics的所有功能。
我们来看一个指挥小海龟绘制一个长方形的简单代码:
从程序代码可以看出,海龟绘图就是指挥海龟前进、转向,海龟移动的轨迹就是绘制的线条。要绘制一个长方形,只需要让海龟前进、右转90度,反复4次。
调用width()函数可以设置笔刷宽度,调用pencolor()函数可以设置颜色。更多操作请参考turtle库的说明。
绘图完成后,记得调用done()函数,让窗口进入消息循环,等待被关闭。否则,由于Python进程会立刻结束,将导致窗口被立刻关闭。
turtle包本身只是一个绘图库,但是配合Python代码,就可以绘制各种复杂的图形。例如,通过循环绘制5个五角星:
fromturtleimport*defdrawStar(x,y):pu()goto(x,y)pd()#setheading:0seth(0)foriinrange(5):fd(40)rt(144)forxinrange(0,250,50):drawStar(x,0)done()程序执行效果如下:
使用递归,可以绘制出非常复杂的图形。例如,下面的代码可以绘制一棵分型树:
THE END