import turtle as t def tree(n,x): if n <= 0: return None else: t.left(30) t.forward(x) tree(n-1,x-6) t.backward(x) t.right(60) t.forward(x) tree(n-1,x-6) t.backward(x) t.left(30) t.left(90) tree(4,60)
结果如下图所示:
一、 修改步骤l中生成分形树的方法:
分 型层数改为4~6之间的随机数
第一层树枝长改为30~60之间的随机数
二、绘制分形树丛
在800X600的屏幕中绘制分形树丛
树木数量为 50棵
每棵分形树的树根位置为屏幕范围内随机坐标点,树枝允许伸出屏幕窗口外;
以屏幕中心垂直线为分界,位于屏幕左侧的树木向左倾斜,位于屏幕右侧的树木向右倾斜;绘制过程瞬间完成(即看不到绘画过程)。
import turtle as t import random def tree(n,x): if n <= 0: return None else: t.left(30) t.forward(x) tree(n-1,x-6) t.backward(x) t.right(10) t.forward(x) tree(n-1,x-6) t.backward(x) t.right(20) def tree2(n,x): if n <= 0: return None else: t.right(30) t.forward(x) tree2(n-1,x-6) t.backward(x) t.left(10) t.forward(x) tree2(n-1,x-6) t.backward(x) t.left(20) screen = t.Screen() screen.setup(800,600) screen.tracer(0) t.left(90) for i in range(50): x = random.randint(-300,300) y = random.randint(-200,200) n = random.randint(4,6) x1 = random.randint(30,60) t.penup() t.goto(x,y) t.pendown() if x>0: tree2(n,x1) else: tree(n,x1) t.update()
结果如下图所示: