from tkinter import * from bezier import make_cubic_bezier def draw_bezier(canvas, control_points): points = make_cubic_bezier(control_points, n= 400) for i in range(1,len(points)): x1 = points[i-1][0] y1 = points[i-1][1] x2 = points[i][0] y2 = points[i][1] canvas.create_line(x1,y1, x2,y2) def get_point(event): global control_points point = x, y = (event.x, event.y) control_points.append(point) canvas.create_oval(x, y, x+3, y+3) if len(control_points) == 4: draw_bezier(canvas, control_points) control_points = [] if __name__ == '__main__': control_points = [] root = Tk() canvas = Canvas(root, width=800, height=800) canvas.pack() canvas.bind('', get_point) root.mainloop()