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()
|