python tkinter canvas随鼠标划任意弯曲线条
时间: 2023-06-29 15:16:05 浏览: 85
要在Tkinter Canvas中实现随鼠标划任意弯曲线条,你可以采用Bezier曲线的实现方式。这种方式可以让你在Canvas上绘制平滑的曲线。
下面是一个实现随鼠标划任意弯曲线条的Tkinter Canvas的例子:
```python
from tkinter import *
def start(event):
global x, y
x, y = event.x, event.y
canvas.create_oval(x-2, y-2, x+2, y+2, fill='black')
def draw(event):
global x, y
canvas.create_line(x, y, event.x, event.y, smooth=TRUE, splinesteps=36, width=2)
x, y = event.x, event.y
root = Tk()
canvas = Canvas(root, width=400, height=400)
canvas.pack()
canvas.bind("<Button-1>", start)
canvas.bind("<B1-Motion>", draw)
root.mainloop()
```
这段代码中,我们使用create_oval方法在Canvas上绘制一个小黑点,以标记曲线的起始点。然后,我们使用create_line方法绘制Bezier曲线,设置smooth为True,这样就可以让曲线平滑地连接所有点。我们还设置了splinesteps为36,这表示曲线的分段数,数值越大曲线越平滑。
运行程序后,你可以按下鼠标左键并拖动来绘制任意弯曲线条。