用Python的Turtple画图形,,不知道各位是否还记得


不知道各位是否还记得在小学或者初中的时候,我们接触过一种语言叫做logo语言,这个语言可以画正方形,画三角形,画圆。而用Python画图形也有点类似logo语言的意思。


在画图之前,我们需要启动一个模块,turtple。然后在这个turtple下有一个属性叫pen,顾名思义就是画笔的意思。当输入完pen这个属性的时候,idle会打开一个叫Python Turtle Graphics的东西,在屏幕中间有一个三角的原点,这个点就有点类似logo的点,我们就是操作它来回移动留下痕迹。在idle里写完一句话,后面的Graphics就会画一道,然后再写一句话,再画一道。如果是直接的.py文件,那么就会按步骤的出现图形。

importturtplet=turtple.Pen()#设定这个t就是整个的变量,注意大写P


让原点前进50个像素:t.forward(50)

让原点左转90度:t.left(90)

让原点右转30度:t.right(30)

让原点抬起来:t.up()#这样使用forward就不会留下痕迹,因为笔在纸面上抬起来了嘛

让原点落下:t.down()

让原点是蓝色:t.color("blue")

需要使用蓝色填充图案:t.begin_fill()#需要和上面的语句搭配

填充图案停止:t.end_fill()

清空左右图案并且原点回到原始位置:t.reset()

让原点移动到(70,100)的位置:t.goto(70,100)#注意中间是逗号,默认整个图案是四象限的

了解了上面的几个简单语句,就可以画一个八边形,比如这个图:

技术分享

这个图的程序就比较灵活了:

importtimeimportturtle#x边形内角和180*(x-3)#函数:给出大小和顶点数绘制星星#size:星星的核心是个等边多边形,这是该多边形的顶点到其中心的距离#point:顶点数deffuncDrawStar(size,point):t=turtle.Pen()#调校坐标位置t.up()t.backward(200)t.right(90)t.forward(100)t.left(90)t.down()#开始画图t.color(1,0,0)t.begin_fill()forxinrange(1,point*2+1):t.forward(size)ifx%2==0:t.left(120)else:t.right(180*(point-2)/point-60)t.end_fill()#funcDrawStar(100,6)funcDrawStar(100,9)time.sleep(5)




上面都是一些简单的应用,但是要知道python也是可以画出来美妙的图形的,比如下图:

技术分享


这个图形的代码如下(代码是转载的,感谢大牛分享,python 3.5亲测好使,而且整个过程非常美妙,强烈推荐各位感受一下。)

fromnumpyimport*fromrandomimportrandomimportturtleturtle.reset()x=array([[.5],[.5]])p=[0.85,0.92,0.99,1.00]A1=array([[.85,0.04],[-0.04,.85]])b1=array([[0],[1.6]])A2=array([[0.20,-0.26],[0.23,0.22]])b2=array([[0],[1.6]])A3=array([[-0.15,0.28],[0.26,0.24]])b3=array([[0],[0.44]])A4=array([[0,0],[0,0.16]])turtle.color("red")cnt=1whileTrue:cnt+=1ifcnt==2000:breakr=random()ifr<p[0]:x=dot(A1,x)+b1elifr<p[1]:x=dot(A2,x)+b2elifr<p[2]:x=dot(A3,x)+b3else:x=dot(A4,x)#printx[1]turtle.up()turtle.goto(x[0][0]*50,x[1][0]*40-240)turtle.down()turtle.dot()


本文出自 “生活就是等待戈多” 博客,请务必保留此出处http://chenx1242.blog.51cto.com/10430133/1775558

用Python的Turtple画图形

评论关闭