Как интерпретировать порядок сортировки результатов GestureRecognizer? - PullRequest
1 голос
/ 17 марта 2010

Документация для класса GestureRecognizer в .NET гласит, что порядок сортировки результатов, возвращаемых методом Recognize, имеет отношение к степени доверия.

Однако, когда я создал свой собственный пример (в WPF, .NET 3.5sp1), который создает распознаватель, я не вижу такого поведения. Для записи я установил распознаватель для распознавания всех возможных жестов ( ApplicationGesture.AllGestures ).

Мой код начинается с MouseDown, а затем записывает все точки на MouseMove, пока не получит событие MouseUp, которое затем вызывает распознаватель.Recognize () для штриха , созданного из всех этих точек (обычно в диапазоне 100 или около того).

То, что я часто получаю, это 4+ хиты, отсортированные следующим образом (сообщается о достоверности в скобках):

  1. NoGesture (Сильный)
  2. ArrowLeft (Средний уровень)
  3. Квадрат (Сильный)
  4. ChevronDown (Сильный)

Это ошибка? Стоит ли обращать внимание только на первый элемент в массиве?

1 Ответ

2 голосов
/ 17 марта 2010

Мой опыт работы с этим состоял в том, что порядок элементов в наборе результатов был, по крайней мере, несколько произвольным. Я получил сортировку по уверенности (по убыванию), а затем по вероятности того, что это был желаемый жест (в зависимости от контекста), и ощущение того, сколько изменений вносит данный жест в состояние приложения.

Например: если бы я знал, что круг - это жест «выбрать этот элемент», а Square - «Перестроить кэшированные данные для этого элемента, что может занять 5 минут, поскольку мы переходим к нескольким внешним службам» (очевидно, плохой выбор жестов, учитывая сходство), я бы предпочел выбрать Круг, если оба вернулись с одинаковой уверенностью. Иногда я даже доверял бы более низкому доверию по сравнению с более высоким (скажем, на одном уровне).

Для этого требуется сильное чувство контекста в вашем приложении, но я считаю, что было бы полезно убедиться, что вы не получили две "сильные" уверенности и не выполнили ту, которая потребовала больше работы, чтобы отменить. Одна вещь, которая всегда верна в этих жестовых интерфейсах, это то, что мы никогда не будем делать правильные вещи в 100% случаев, поэтому нужно помнить о минимальном ущербе, если мы ошибаемся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...