python

超轻量级php框架startmvc

python实现画一颗树和一片森林

更新时间:2020-06-07 22:54:02 作者:startmvc
本文实例为大家分享了python画一颗树和一片森林的具体代码,供大家参考,具体内容如下实

本文实例为大家分享了python画一颗树和一片森林的具体代码,供大家参考,具体内容如下

实现效果

代码在这里


from turtle import Turtle

def tree(plist, l, a, f):
 """
 :param plist:画笔列表,指数型增加
 :param l: 画笔的长度,同时也是递归终止条件,注意下面的引用中是字母l,不是数字1
 :param a: 分开的两个树杈之间夹角的一半,固定值65°
 :param f: 子树与父树的比值
 :return: 返回一个基本的Y型的树
 """
 if l>5:
 lst = []
 for p in plist:
 p.forward(l)
 q = p.clone()
 p.left(a)
 q.right(a)
 lst.append(p)
 lst.append(q)
 tree(lst,l*f,a,f)

def maketree(x,y):
 """

 :param x: 树起点的横坐标
 :param y: 树起点的纵坐标
 :return: 返回一颗树
 """
 p = Turtle()
 p.color("green")
 p.pensize(5)
 p.hideturtle() # 隐藏那只小乌龟

 p.getscreen().tracer(30,0)# 获得屏幕句柄,可以对其进行操作,每30次操作将屏幕刷新,延时为0
 p.speed(10)
 p.left(90)

 p.penup()
 p.goto(x, y)
 p.pendown() # 此三句向来组合使用,意思为起笔,移动,落笔之意

 t = tree([p],200,65,0.6375)
 print(len(p.getscreen().turtles())) #一共用了多少笔划
def main():
 """
 主函数,赋树的起点坐标
 """
 maketree(0,0)
 maketree(-200,-200)
 maketree(200,-200)

main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python画一颗树 python画一片森林 python画树