Как создать многоугольник при щелчке мышью по изображению на холсте tkinter python - PullRequest
0 голосов
/ 26 июня 2018

Задача состоит в том, чтобы создать несколько полигонов на изображении, щелкая мышью в разных местах на изображении.Я использовал Python tkinter для этой задачи.Я отобразил изображение пользователю.Я получил координаты X, Y, когда пользователь нажимает на изображение.Как создать полигон из разных координат, по которым щелкнул пользователь.Изначально я хочу создать простую линию по щелчку мыши, но по мере увеличения количества выбранных точек необходимо создать многоугольник.Это часть кода, которую я сделал для этой задачи.

# Function to get the co-ordianates of  mouse clicked position and draw polygons
def draw_plygons(event):
    mouse_xy = (event.x, event.y)

# Draw canvas for iput image to pop up image for clicks
    filename = ImageTk.PhotoImage(img)
    canvas = Canvas(root,height=img.size[0],width=img.size[0])
    canvas.image = filename
    canvas.create_image(0,0,anchor='nw',image=filename)
    canvas.pack()
# bind function to canvas to generate event
    canvas.bind("<Button 3>", draw_polygons)
    root.mainloop()

1 Ответ

0 голосов
/ 26 июня 2018

Вот решение, как я это сделал.

def draw_polygons(event):
        mouse_xy = (event.x, event.y)

Я собрал все точки нажатия в списке list_of_points, а затем нарисовал, используя:

canvas.create_polygon(list_of_points, fill='', outline='green', width=2)
...