2010-10-18 115 views
2

http://dl.dropbox.com/u/779859/speedCalc_puradata.JPG如何在Python中计算鼠标光标速度的大小?

我在纯粹的数据来实现它,看一看的原理我在想什么:

    从CTLIN 20
  • Recieving MIDI控制输入和21
  • 管延迟任何信号,它收到
  • 毕达哥拉斯
  • 中提琴,输入的速度。单位不重要,只要它是绝对的。

我正在考虑做同样的事情,但在Python中,鼠标光标。

基本上,当我移动鼠标时,我想看看鼠标移动的速度。 输入数据包的速率在200hz恒定。

我可能想出了一个办法,虽然我还没有测试过。如何收集列表中的51个值,保持[0]当前值,[50]最长。然后简单地对这两个值进行数学计算?

让我知道你在想什么。

+0

我很困惑。你想不断计算速度还是超过特定的时间间隔?您需要更好地描述问题 – 2010-10-18 04:22:21

+1

sleep()与计算指针速度有什么关系? – 2010-10-18 04:23:52

+4

你是什么意思,非洲或欧洲老鼠? – 2010-10-18 04:57:12

回答

2

你所描述的会给你速度的大小乘以测量时间间隔的长度。实际的速度将是一个向量。你可以得到它的第一个坐标为(posX - delayed_posX)/t,第二个坐标为(posY-delayed_posY)/t,其中t是测量之间的时间间隔。请注意,这满足P最终 = P开始 +吨V其中P是我们的位置矢量。无论何时你想知道如何测量速度的近似值,那总是你的出发点。时间间隔越小,您将获得的速度图片越准确。

回应您关于time.sleep的问题,不会减慢您的其他代码:除非它在另一个线程中运行,否则它将完全停止它。

你究竟想要做什么?除非我们知道您需要数据的位置,何时需要它以及您需要的数据量,否则很难说是否有更好的方法。

+0

更新了问题* – 2010-10-18 15:53:20

0

原来我需要的只是X的区别,然后我用它作为幅度。

x_list.insert(0, x) 
if len(x_list) > 5: 
    x_list.pop() 
# Get the velocity 
velocity = abs(x_list[0]-x_list[-1]) 

其中“x”是光标的当前值,在200hz更新。