python分形树-递归
                        程序开发
                        2023-09-06 17:56:43 
                    
                    分形树
1. 利用turtle画出分形树
- 问题描述: 利用turtle画出下图所示的分形树
- 要求: - 树木主干向上生长
- 分形层数为4,二叉树
- 第一层树枝长度为60,逐层减6
- 左右树枝的倾斜角度不限,最终效果和下图所示大致相同即可
 
import turtle as tdef tree(n,x):if n <= 0:return Noneelse: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)
 结果如下图所示:

2. 绘制分形树丛
一、 修改步骤l中生成分形树的方法:
-  分 型层数改为4~6之间的随机数 
-  第一层树枝长改为30~60之间的随机数 
二、绘制分形树丛
-  在800X600的屏幕中绘制分形树丛 
-  树木数量为 50棵 
-  每棵分形树的树根位置为屏幕范围内随机坐标点,树枝允许伸出屏幕窗口外; 
-  以屏幕中心垂直线为分界,位于屏幕左侧的树木向左倾斜,位于屏幕右侧的树木向右倾斜;绘制过程瞬间完成(即看不到绘画过程)。 
import turtle as t
 import randomdef tree(n,x):if n <= 0:return Noneelse: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 Noneelse: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()结果如下图所示:
 
标签:
                            上一篇:
                             前端实现取小数(保留几位小数)功能(四舍五入/不四舍五入):
                                                        下一篇:
                                                    
                        相关文章
- 
                    			无相关信息                            
