Python画树的方法
这篇文章将为大家详细讲解有关Python画树的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
用Python画出的三种树:
第一种树:
#图一:fromturtleimport*fromrandomimport*frommathimport*deftree(n,l):pd()#下笔#阴影效果t=cos(radians(heading()+45))/8+0.25pencolor(t,t,t)pensize(n/4)forward(l)#画树枝ifn>0:b=random()*15+10#右分支偏转角度c=random()*15+10#左分支偏转角度d=l*(random()*0.35+0.6)#下一个分支的长度#右转一定角度,画右分支right(b)tree(n-1,d)#左转一定角度,画左分支left(b+c)tree(n-1,d)#转回来right(c)else:#画叶子right(90)n=cos(radians(heading()-45))/4+0.5pencolor(n,n,n)circle(2)left(90)pu()backward(l)#退回bgcolor(0.5,0.5,0.5)#背景色ht()#隐藏turtlespeed(0)#速度,1-10渐进,0最快tracer(0,0)left(90)#左转90度pu()#抬笔backward(300)#后退300tree(13,100)#递归7层done()
绘图如下:
第二种树:
#图二:fromturtleimport*fromrandomimport*frommathimport*deftree(n,l):pd()#下笔#阴影效果t=cos(radians(heading()+45))/8+0.25pencolor(t,t,t)pensize(n/3)forward(l)#画树枝ifn>0:b=random()*15+10#右分支偏转角度c=random()*15+10#左分支偏转角度d=l*(random()*0.25+0.7)#下一个分支的长度#右转一定角度,画右分支right(b)tree(n-1,d)#左转一定角度,画左分支left(b+c)tree(n-1,d)#转回来right(c)else:#画叶子right(90)n=cos(radians(heading()-45))/4+0.5pencolor(n,n*0.8,n*0.8)circle(3)left(90)#添加0.3倍的飘落叶子if(random()>0.7):pu()#飘落t=heading()an=-40+random()*40setheading(an)dis=int(800*random()*0.5+400*random()*0.3+200*random()*0.2)forward(dis)setheading(t)#画叶子pd()right(90)n=cos(radians(heading()-45))/4+0.5pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)circle(2)left(90)pu()#返回t=heading()setheading(an)backward(dis)setheading(t)pu()backward(l)#退回bgcolor(0.5,0.5,0.5)#背景色ht()#隐藏turtlespeed(0)#速度,1-10渐进,0最快tracer(0,0)pu()#抬笔backward(100)left(90)#左转90度pu()#抬笔backward(300)#后退300tree(12,100)#递归7层done()
绘图如下:
第三种树:
#图三:importturtleimportrandomfromturtleimport*fromtimeimportsleept=turtle.Turtle()w=turtle.Screen()deftree(branchLen,t):ifbranchLen>3:if8<=branchLen<=12:ifrandom.randint(0,2)==0:t.color('snow')else:t.color('lightcoral')t.pensize(branchLen/3)elifbranchLen<8:ifrandom.randint(0,1)==0:t.color('snow')else:t.color('lightcoral')t.pensize(branchLen/2)else:t.color('sienna')t.pensize(branchLen/10)t.forward(branchLen)a=1.5*random.random()t.right(20*a)b=1.5*random.random()tree(branchLen-10*b,t)t.left(40*a)tree(branchLen-10*b,t)t.right(20*a)t.up()t.backward(branchLen)t.down()defpetal(m,t):#树下花瓣foriinrange(m):a=200-400*random.random()b=10-20*random.random()t.up()t.forward(b)t.left(90)t.forward(a)t.down()t.color("lightcoral")t.circle(1)t.up()t.backward(a)t.right(90)t.backward(b)defmain():t=turtle.Turtle()myWin=turtle.Screen()getscreen().tracer(5,0)turtle.screensize(bg='wheat')t.left(90)t.up()t.backward(150)t.down()t.color('sienna')tree(60,t)petal(100,t)myWin.exitonclick()main()
绘图如下:
关于Python画树的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。