1

私が取り組んでいる Silverlight のアプリケーションでは、マウスの動きを追跡する必要があります。私の問題は、MouseMoveイベントを使用すると、ユーザーがマウスを十分に速く動かした場合、連続したポイントのセットがないことです(リストに各ポイントを追加すると、(10,10)en、(20,20)を持つことができます)...)

移動中にマウスがあったすべてのポイントが必要です。何か考えはありますか?

4

1 に答える 1

1

これでは効率的に作業できません。Silverlight の mousemove イベントは、OS が座標を含むシグナルを送信するのを待ちます。オペレーティング システムは、非常に高速で移動する場合、移動するすべてのポイントに対してイベントを発生させるわけではありません。ほとんどの OS は、マシンの状態をチェックする無限ループを実行します。これらのループが高速である場合、おそらくすべてのポイントでマウス移動を検出します。マウスが (1,1) から (20,20) に 0.001 ミリ秒で移動した場合、OS はおそらく (10,10) でイベントを呼び出すか、ループが時間通りにヒットしない場合はまったく呼び出しません。

これを高速化できる方法は、mousemove のコードを減らすか、非同期にすることです。

もう 1 つの方法は、既に収集したものに基づいてパスを計算する数学的な方法です。

于 2010-06-11T05:45:41.933 に答える