hi,我是梁同学。今天还是来绘制一个炫彩的图像效果,可以让用户输入数值,绘制炫彩螺旋线的效果。
透露一下,19行代码轻松解决信不信?
import turtleimport time as tmt = turtle.Pen()t.speed(0)sides = int(turtle.numinput("Number of sides","How many sides in your spiral?",4))for m in range(5,75):t.left(360/sides + 5)t.width(m//25+1)t.penup()t.forward(m*4)t.pendown()if (m % 2 == 0):for n in range(sides):t.circle(m/3)t.right(360/sides)else:for n in range(sides):t.forward(m)t.right(360/sides)
很简单,真的很简单。
首先前两行导入库,当然可以这样写。
import turtle,time
第三行,指定t为画笔。设置速度为0。这里讲一下,速度范围是0~100,0是最快,其次才是100。
第五行,这里涉及到一个函数numinput,具体效果是弹出一个询问窗口,结果保存在前面的变量里。当然获取数值是str类型,所以使用int函数转换数字类型。参数:(标题,询问文本,默认值)具体效果如下图:
后面就是绘图循环了。左转360除以sides+5度。之所以略过了0~4是因为画出来的图片很难看(不信,去掉+5试试)。旋转螺旋线,在width(同pensize)处使用整除,意思是每次达到25个图形后让笔更粗一点。随着形状越来越大,线条也变得越来越粗。
第9~11行,我们将画笔抬起,并且向前移动之后落笔。这让海龟不会在图像中间绘制线条。
在第12行,检测循环变量m,看是否要在一个偶数角上绘制,如果m是偶数,我们在13~15行的for循环绘制玫瑰花瓣。否则,17~19行的代码会绘制一个多边形。
运行效果检测:输入4效果如下。
输入5效果如下。
好了,今天讲到这里,下次见!
csdn官网点击进入