最佳答案
看看 this page 上的算法因为它包含派生自的原始代码。
以下是我对函数作用的总结:
addmove:首先它决定鼠标/指针移动的距离是否足以算作要记录的新位置。如果有,则它会确定移动在 8 个方向中的哪个方向并将其添加到移动列表中。
costLeven:计算 Levenshtein distance两个序列之间。在这种情况下,它用于测量每个预定义手势序列与用户输入的手势序列之间的距离。它基本上用于根据输入手势确定哪个字母是输出的最佳选择。较小的 Levenshtein 距离表示更好的匹配。
matchGesture(最接近 meatureGesture):获取用户输入的手势,并根据所有预定义的手势检查它,以根据 Levenshtein 距离找到最佳匹配。如果有足够接近的匹配,则将最匹配的预定义手势的键传递给触发某些操作的 onGestureListener.onGesture()。在这种情况下,它会向屏幕输出一个字母。
关于android - 你能解释一下(数学计算)手势示例(Levenshtein)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2411547/