1

.NETのクラスのドキュメントGestureRecognizerには、Recognize メソッドによって返される結果の並べ替え順序は、信頼度の強さと関係があると記載されています。

ただし、レコグナイザーを作成する独自のサンプル (WPF、.NET 3.5sp1) を作成した場合、この動作は見られません。記録のために、すべての可能なジェスチャ ( ApplicationGesture.AllGestures ) を認識するように認識エンジンを設定しました。

私のコードは、MouseDown で始まり、MouseUp イベントを受け取るまで、MouseMove のすべてのポイントを記録します。MouseUp イベントは、これらすべてのポイント (通常は 100 ポイント程度) から生成されたストロークで Recognize() を呼び出します。

私がよく得るのは、次のように並べ替えられた 4 つ以上のヒットです (括弧内は信頼性が報告されています)。

  1. ノージェスチャー(強)
  2. ArrowLeft (中級)
  3. スクエア(ストロング)
  4. シェブロンダウン(強)

これはバグですか?配列の最初の項目だけに注意を払うべきですか?

4

1 に答える 1

2

これを扱った私の経験では、結果セット内のアイテムの順序は少なくともいくらか恣意的でした. 最終的には、信頼度 (降順) で並べ替え、次に、それが望ましいジェスチャである可能性 (コンテキストに基づく) と、特定のジェスチャがアプリケーションの状態にどの程度の変化をもたらすかという感覚で並べ替えました。

例: 円が「このアイテムを選択する」ジェスチャであり、四角が「このアイテムのキャッシュ データを再構築します。複数の外部サービスに移行するため、5 分かかる可能性があります」とわかっていた場合 (ジェスチャの選択が明らかに不適切で、類似性を考えると)、両方が同じ自信を持って戻ってきた場合は、円を選ぶことをお勧めします. 時には、信頼度の高いものよりも低い信頼度を取ることさえあります (たとえば、1 つのレベル内で)。

これには、アプリケーションに強力なコンテキストの感覚が必要ですが、2 つの「強い」信頼を得て、元に戻すのにより多くの作業が必要な 1 つを実行してしまうことがないようにすることが重要であることがわかりました。これらのジェスチャ インターフェースについて常に言えることの 1 つは、100% 常に正しいことを行うことは決してないということです。

于 2010-03-17T12:24:21.853 に答える