Можете ли вы объяснить (математические вычисления) пример жеста (Левенштейн)? - PullRequest
4 голосов
/ 09 марта 2010

Я получил пример в этой ссылке .

Я не могу понять методы addmove, costLeven и meatureGesture.

Можете ли вы объяснить это шаг за шагом?

1 Ответ

5 голосов
/ 10 марта 2010

Посмотрите на алгоритм на этой странице , поскольку он содержит исходный код, из которого он был получен.

Вот мое резюме того, что делают функции:

  • addmove: сначала он решает, переместился ли указатель мыши / мышь достаточно далеко, чтобы считаться новой позицией для записи. Если это так, то он определяет, в каком из 8 направлений находится движение, и добавляет его в список ходов.

  • costLeven: вычисляет расстояние Левенштейна между двумя последовательностями. В этом случае он используется для измерения расстояния между каждой предварительно определенной последовательностью жестов и последовательностью жестов, введенной пользователем. Это в основном используется, чтобы выяснить, какая буква является лучшим выбором для вывода на основе жеста ввода. Небольшое расстояние Левенштейна указывает на лучшее совпадение.

  • matchGesture (ближайший к meatureGesture): принимает жест, введенный пользователем, и сравнивает его со всеми предопределенными жестами, чтобы найти наилучшее совпадение на основе расстояния Левенштейна. Если совпадение достаточно близко, ключ предопределенного жеста с наилучшим соответствием передается в onGestureListener.onGesture (), который запускает какое-то действие. В этом случае выводит букву на экран.

...