2

http://dl.dropbox.com/u/779859/speedCalc_puradata.JPG

私は純粋なデータでそれを達成しました。私が考えていることの概略図を見てください:

  • ctlin 20 および 21 からの MIDI コントロール入力の受信
  • パイプは受信した信号を遅延させます
  • ピタゴラス
  • ヴィオラ、入力の速さ。単位は絶対的なものであれば問題ありません。

私は同じことを考えていましたが、マウスカーソルのためにPythonで。

基本的に、マウスを動かすとき、マウスがどのくらいの速度で動いているかを見たいと思います。入力パケットのレートは 200hz で一定です。

まだテストしていませんが、方法を思いついたかもしれません。たとえば、リストに 51 個の値を収集し、[0] を最新に保ち、[50] を最も古いものにするのはどうでしょうか。次に、これらの 2 つの値を単純に計算しますか?

4

2 に答える 2

2

あなたが説明していることは、速度の大きさに測定の時間間隔の長さを掛けたものです。実際の速度はベクトルになります。最初の座標を として取得し(posX - delayed_posX)/t、2 番目の座標を測定間の時間間隔として(posY-delayed_posY)/t取得できます。これはP final = P start + t Vtを満たすことに注意してください。ここで、Pは位置ベクトルです。速度の近似値を測定する方法を知りたいときはいつでも、それが出発点です。時間間隔が短いほど、より正確な速度の画像が得られます。

に関するあなたの質問に答えてtime.sleep、いいえ、他のコードを遅くすることはありません。別のスレッドで実行しない限り、完全に停止します。

正確に何をしようとしていますか?データがどこにある必要があるか、いつそこにある必要があるか、どの程度最新である必要があるかがわからない限り、より良い方法があるかどうかを言うのは困難です.

于 2010-10-18T05:27:27.643 に答える
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 で更新されます。

于 2010-10-19T02:21:29.623 に答える