python分形树tkinter
时间: 2023-09-06 12:12:50 浏览: 78
基于Python与Tkinter的可视化五子棋游戏
好的,下面是一个简单的Python分形树实现,使用Tkinter绘制:
```python
import tkinter as tk
import math
class FractalTree:
def __init__(self, canvas):
self.canvas = canvas
self.width = canvas.winfo_width()
self.height = canvas.winfo_height()
def draw(self):
self.canvas.delete("all")
self.branch(300, 500, -90, 100)
def branch(self, x, y, angle, length):
if length < 10:
return
x2 = x + length * math.cos(math.radians(angle))
y2 = y + length * math.sin(math.radians(angle))
self.canvas.create_line(x, y, x2, y2, width=max(1, int(length/20)))
self.branch(x2, y2, angle-30, length*0.7)
self.branch(x2, y2, angle+30, length*0.7)
def main():
root = tk.Tk()
root.geometry("800x600")
canvas = tk.Canvas(root, width=800, height=600)
canvas.pack()
tree = FractalTree(canvas)
tree.draw()
root.mainloop()
if __name__ == "__main__":
main()
```
此代码创建了一个名为`FractalTree`的类,用于绘制分形树。在`branch`方法中,递归地绘制树枝,并且每个树枝的长度都是前一个树枝的70%。这样就可以创建一个递归的树状结构。
在`main`函数中,我们创建了一个Tkinter窗口,并将Canvas添加到窗口中。然后,我们实例化`FractalTree`类,并调用`draw`方法来绘制分形树。最后,我们进入Tkinter事件循环,等待用户交互。
您可以根据需要调整这个代码来创建您自己的分形树。
阅读全文