Tkinter生成递归树
时间: 2024-01-01 18:06:51 浏览: 70
递归遍历目录并生成树
5星 · 资源好评率100%
好的,以下是一个简单的 Tkinter 递归树生成程序:
```python
import tkinter as tk
def draw_tree(canvas, x, y, length, angle, depth):
if depth > 0:
x2 = x + length * math.cos(math.radians(angle))
y2 = y - length * math.sin(math.radians(angle))
canvas.create_line(x, y, x2, y2)
draw_tree(canvas, x2, y2, length * 0.7, angle - 30, depth - 1)
draw_tree(canvas, x2, y2, length * 0.7, angle + 30, depth - 1)
def create_tree():
canvas.delete("all")
depth = int(depth_entry.get())
length = int(length_entry.get())
x = int(canvas["width"]) / 2
y = int(canvas["height"])
draw_tree(canvas, x, y, length, -90, depth)
root = tk.Tk()
root.title("Recursive Tree")
depth_label = tk.Label(root, text="Depth:")
depth_label.pack(side=tk.LEFT)
depth_entry = tk.Entry(root)
depth_entry.pack(side=tk.LEFT)
length_label = tk.Label(root, text="Length:")
length_label.pack(side=tk.LEFT)
length_entry = tk.Entry(root)
length_entry.pack(side=tk.LEFT)
button = tk.Button(root, text="Create Tree", command=create_tree)
button.pack(side=tk.LEFT)
canvas = tk.Canvas(root, width=500, height=500)
canvas.pack()
root.mainloop()
```
在这个程序中,我们使用了 Tkinter 的 Canvas 组件来绘制递归树。在 `draw_tree` 函数中,我们使用了递归来生成树的分支。在 `create_tree` 函数中,我们从用户输入的深度和长度开始递归绘制树。最后,我们使用 Tkinter 来创建一个简单的用户界面,让用户输入深度和长度,并点击按钮生成递归树。
这只是一个简单的例子,你可以根据自己的需要来修改和扩展程序。
阅读全文