python - 获取鼠标移动中每个点的坐标
问题描述
我需要所有鼠标移动坐标:当鼠标移动时,我需要一个连续的 (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
不完整:它“跳跃”了一些点,可能是因为鼠标移动得太快而丢失了一些点。我怎样才能记录所有在途的点?
解决方案
您无法记录比设备采样率更细的输入。如果您已经为鼠标移动的细粒度事件进行了设置,那么这是您在这方面可以做的最好的事情。
但是,如果出于某种原因需要连续点,则可以对缺失的点进行插值以形成连接路径。简单的方法是用Bresenham 的线算法连接这些点。我建议你使用一些东西来平滑曲线;有几个包可以将漂亮的曲线拟合到一系列点;寻找术语“样条曲线”。
推荐阅读
- ios - 如何在表格视图单元格中将子视图添加到stackview?
- java - 如何在 Java 中使用 Mockito 存根方法
- javascript - 如何应用 b 表字段 thClass 或 tdClass 或 class
- flutter - 如何转换 Flutter 的 Future
到未来 ? - php - PDO 无效的布尔参数
- python - 格式化和拆分列表
- typescript - 如何保留连接列表 RxJS
- python - 如何使用 BeautifulSoup 获取选项数据?
- php - 尽管在 .htaccess 中使用了“ForceType image/jpeg”,但 PHP 文件仍在执行
- javascript - 在浏览器后退按钮上关闭 Wordpress 模式弹出窗口