2013-05-18 2 views
8

私の姉妹と私は、震え(手に震え)に苦しむ人々を助けるプログラムを書いています。マウスが地面に触れているのか、空気中にいるのかを検出します。

プログラムは、マウスカーソルが遅くなっていることを認識し、カーソルをより簡単に制御可能にし、揺れた手でマウスを使用するのをより簡単にします。

プログラムはこれまでのところ問題があります。ユーザーがマウスを別の位置に持ち上げると、短時間の間、速度は0になります。プログラムは、カーソルが減速しなければならないと想定していますが、これは起こりません。

マウスがマウスパッド/グラウンドに接触しているかどうかを検出する方法はありますか?

私たちはC#でプログラミングしています。

+0

良い質問ですが、残念ながら – craig1231

+1

マウスカーソルを持っている速度で、マウスを持ち上げているユーザーの動きを認識しようとしました。人が震えている場合、マウスカーソルの速度はほとんどゼロにはなりません。マウスが空中にある場合、速度は0になるはずです。残念ながら、これはうまくいきませんでした.... –

+2

アイデア:マウスが意図的に停止した場合、マウスは最初に減速しています。それが空中にあれば、ストップはもっと突然になります。たぶんそれを検出しようとする?もしあなたがすでにアルゴリズムを持っているのであれば、それをキャリブレーション/リファインするしかないかもしれません。私は様々な状況でマウスの速度ストリームをキャプチャし、それからグラフを作成することをお勧めします。検出したい動作の特性をより明白にします。 –

答えて

1

おそらく、あなたの最良の賭けは、この場合のマウスデータの損失を特定し、プログラムが一致する動きを無視するようにすることです。

例えば、移動していないマウスを持ち上げると、動きはちょうどゼロになりますか?そうであれば、低い閾値の下で動きを無視する。

+0

私たちはそれを試みましたが、うまくいきませんでした。そしてそれ以上の時間を使う前に、あなたはあまり知っていて簡単なオプションがあるかもしれないので、皆さんに尋ねたいと思っていました。 –

+0

うまくいかないと言ったらどういう意味ですか? –

+0

結果は非常に矛盾していました。時には認識は機能しましたが、実際に機能させるには余裕がありませんでした。我々はまた、最も簡単な方法で(速度がどれくらいの間、ゼロに近づいたかを測定する)試みました。もっと複雑なアルゴリズムが役立つかもしれません... –

関連する問題