最近很多读者对python的turtle库比较感兴趣。我会用蟒蛇为你画一朵玫瑰。我还写了一篇关于如何画玫瑰的文章。今天在知乎上找到一个用turtle画树的python程序,一起来看看吧。其实这种程序只需要了解大概的思路就可以了。有兴趣的可以自己熟悉一下turtle中各个函数的用法和作用。我在画玫瑰的文章中也介绍过一些。您可以在下面参考它。先说一下画这棵树的大概思路。首先,这幅画可以分为两部分,一部分是树,一部分是地上的花瓣。关键是如何画树。树可分为树叶和树枝。每个枝条最多可分为两个枝条,叶子有两种颜色。树枝的粗细可以通过画笔的大小来控制,树叶的颜色可以通过画笔的颜色来控制。这样我们只需要确认每个位置画笔的大小和颜色即可。同一个方法可以实现不同的分支或者不同的叶子,但是位置不同,所以在程序中我们使用递归来实现,通过递归生成大量的分支和叶子,每次递归都会生成不同位置的分支和树叶。树下的花瓣很容易,一个循环就可以完成,每一循环刷子上下左右随机移动。下面贴出绘制枝叶的代码。您可以将其与上面提供的想法进行比较。完整代码请在本公众号后台回复关键字“树”。#python画树的主要实现方法#branchLen代表树枝的长度,t代表海龟对象deftree(branchLen,t):ifbranchLen>2: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:吨。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()树(branchLen-10*b,t)t.left(40*a)树(branchLen-10*b,t)t.right(20*a)t.up()t.backward(branchLen)t.down()
