Я создал сетку из шестиугольников, используя библиотеку matplotlib.patches
. Фигура, отображаемая моей программой, является интерактивной: она позволяет выбрать шестиугольник левой кнопкой мыши, что приведет к заполнению шестиугольника черным цветом. Таким образом, я отмечаю окружность многоугольника:
Теперь я хочу соединить заполненные шестиугольники так, чтобы я мог видеть окружность многоугольника. Я хочу, чтобы многоугольник рисовался при нажатии клавиши. Вот моя идея:
def draw_circumference(event):
if event.key == 'd':
print(circumference)
plt.Polygon(circumference, fill=False, edgecolor='k')
#fig.canvas.draw()
fig.canvas.mpl_connect("key_press_event", draw_circumference)
Переменная circumference
содержит координаты (x, y) соответствующих центров отмеченных шестиугольников в виде списка кортежей: [(x1,y1), x2,y2), ..., (xn,yn)]
. Я прокомментировал fig.canvas.draw()
, потому что считаю, что он должен работать без этой строки. Но пока не работает ни с, ни без fig.canvas.draw()
.
Однако функция вызывается. Я знаю это, поскольку выполняется оператор печати.
Есть идеи, что я делаю не так?