Получить координаты каждой точки в движениях мыши - PullRequest
0 голосов
/ 09 ноября 2018

Мне нужно все координаты движения мыши: по мере движения мыши мне нужна непрерывная последовательность значений (x, y). Мой текущий код оставляет пробелы:

def paint(self, event):
    self.line_width = self.choose_size_button.get()
    paint_color = 'white' if self.eraser_on else self.color

    coord = (event.x, event.y)
    if self.old_x == None or self.old_y == None:

    else:

        print(coord)
        paint_color = self.color
        self.c.create_line(self.old_x, self.old_y, event.x, event.y,
                                width=self.line_width, fill=paint_color,
                                capstyle=ROUND, smooth=TRUE, splinesteps=36)

coord неполно: он «прыгает» на некоторые точки, возможно, потому, что мышь движется слишком быстро и теряет некоторые точки. Как я могу записать все точки в пути?

1 Ответ

0 голосов
/ 09 ноября 2018

Вы не можете записывать ввод с более мелким зерном, чем частота дискретизации устройства. Если вы уже настроены на мелкозернистые события движений мыши, это лучшее, что вы можете сделать в этом отношении.

Однако, если вам по какой-то причине необходимы смежные точки, вы можете интерполировать недостающие точки, чтобы создать соединенный путь. Простой способ - соединить точки с помощью алгоритма линии Брезенхема . Я рекомендую вам использовать что-то для сглаживания кривой; Есть несколько пакетов, которые будут соответствовать хорошей кривой для последовательности точек; ищите и термин «сплайн».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...