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('<Button-1>', get_point)

    root.mainloop()