Python 3 使用Pillow生成漂亮的分形树图片
该程序通过绘制树干(最初是树;后来是树枝)并递归地添加树来绘制“树”。使用Pillow。
利用递归函数绘制分形树(fractaltree),分形几何学的基本思想:客观事物具有自相似的层次结构,局部与整体在形态、功能、信息、时间、空间等方面具有统计意义上的相似性,成为自相似性。自相似性是指局部是整体成比例缩小的性质。
版本:Python3
#Adaptedfromhttp://rosettacode.org/wiki/Fractal_tree#Python #toparameterise,andaddcolour. #http://pillow.readthedocs.org/ #Author:AlanRichmond,Python3.codes,andothers(Rosettacode) importmath,colorsys fromPILimportImage,ImageDraw spread=17#howmuchbranchesspreadapart width,height=1000,800#windowsize maxd=12#maximumrecursiondepth len=9.0#branchlengthfactor #http://pillow.readthedocs.org/en/latest/reference/Image.html img=Image.new('RGB',(width,height)) #http://pillow.readthedocs.org/en/latest/reference/ImageDraw.html d=ImageDraw.Draw(img) #Thisfunctioncallsitselftoaddsub-trees defdrawTree(x1,y1,angle,depth): ifdepth>0: #computethisbranch'snextendpoint x2=x1+int(math.cos(math.radians(angle))*depth*len) y2=y1+int(math.sin(math.radians(angle))*depth*len) #https://docs.python.org/2/library/colorsys.html (r,g,b)=colorsys.hsv_to_rgb(float(depth)/maxd,1.0,1.0) R,G,B=int(255*r),int(255*g),int(255*b) #drawthebranch d.line([x1,y1,x2,y2],(R,G,B),depth) #andappend2treesbyrecursion drawTree(x2,y2,angle-spread,depth-1) drawTree(x2,y2,angle+spread,depth-1) #Startdrawing! drawTree(width/2,height*0.9,-90,maxd) img.show() img.save("www.linuxidc.com.png","PNG")
效果图如下:
总结
以上所述是小编给大家介绍的Python3使用Pillow生成漂亮的分形树图片,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。