中国大学 MOOC 课程 《Python 语言程序设计》第五周绘制树

来源:互联网 发布:淘宝满1000减50怎么用 编辑:程序博客网 时间:2024/05/16 06:18

中国大学 MOOC 课程 《Python 语言程序设计》第五周绘制树

# drawtree.pyfrom turtle import Turtle, mainloopdef tree(plist, l, a, f):    """ plist is list of pens    l is length of branch    a is half of the angle between 2 branches    f is factor by which branch is shortened    from level to level."""    if l>5:   #与之前的基例不同,这次递归,采用l长度与5的比较来结束递归。        lst = []        for p in plist:            p.forward(l)#沿着当前的方向画画Move the turtle forward by the specified distance, in the direction the turtle is headed.            q = p.clone()#克隆一个画笔在当前位置(克隆一个乌龟)            p.left(a) #Turn turtle left by angle units            q.right(a)# turn turtle right by angle units, nits are by default degrees, but can be set via the degrees() and radians() functions.            lst.append(p)#将元素增加到列表的最后            lst.append(q)        tree(lst, l*f, a, f) #再次调用tree函数,这是递归的关键!!!def main():    p = Turtle()    p.color("green")    p.pensize(5)    #p.setundobuffer(None)    p.hideturtle() #Make the turtle invisible. It’s a good idea to do this while you’re in the middle of doing some complex drawing,    #because hiding the turtle speeds up the drawing observably.    #p.speed(10)   # p.getscreen().tracer(1,0)#Return the TurtleScreen object the turtle is drawing on.    p.speed(200)    #TurtleScreen methods can then be called for that object.    p.left(90)# Turn turtle left by angle units. direction 调整画笔    p.penup() #Pull the pen up – no drawing when moving.    p.goto(0,-200)#Move turtle to an absolute position. If the pen is down, draw line. Do not change the turtle’s orientation.    p.pendown()# Pull the pen down – drawing when moving. 这三条语句是一个组合相当于先把笔收起来再移动到指定位置,再把笔放下开始画    #否则turtle一移动就会自动的把线画出来    #t = tree([p], 200, 65, 0.6375)    t = tree([p], 200, 65, 0.6375)main()
阅读全文
0 0