在tkinter上绘制递归树可以通过以下步骤实现:
import tkinter as tk
window = tk.Tk()
canvas = tk.Canvas(window, width=800, height=600)
canvas.pack()
def draw_tree(x, y, length, angle, depth):
if depth > 0:
x2 = x + int(length * math.cos(math.radians(angle)))
y2 = y - int(length * math.sin(math.radians(angle)))
canvas.create_line(x, y, x2, y2)
draw_tree(x2, y2, length * 0.8, angle - 30, depth - 1)
draw_tree(x2, y2, length * 0.8, angle + 30, depth - 1)
draw_tree(400, 600, 200, -90, 10)
window.mainloop()
完整的代码示例:
import tkinter as tk
import math
window = tk.Tk()
canvas = tk.Canvas(window, width=800, height=600)
canvas.pack()
def draw_tree(x, y, length, angle, depth):
if depth > 0:
x2 = x + int(length * math.cos(math.radians(angle)))
y2 = y - int(length * math.sin(math.radians(angle)))
canvas.create_line(x, y, x2, y2)
draw_tree(x2, y2, length * 0.8, angle - 30, depth - 1)
draw_tree(x2, y2, length * 0.8, angle + 30, depth - 1)
draw_tree(400, 600, 200, -90, 10)
window.mainloop()
这段代码使用tkinter库创建了一个窗口,并在窗口上绘制了一个递归树。draw_tree函数使用递归的方式绘制树的分支,每次递归减小树枝长度,并改变角度,直到达到指定的递归深度。通过调整参数可以改变树的形状和大小。
注意:以上代码只是一个简单的示例,实际应用中可能需要根据具体需求进行修改和优化。
领取专属 10元无门槛券
手把手带您无忧上云