このリンクの例を入手しました。
addmove
、costLeven
およびmeatureGesture
メソッドが理解できません。
順を追って説明できますか?
このページのアルゴリズムを見てください。このページには、これが派生した元のコードが含まれているためです。
関数の機能の概要は次のとおりです。
addmove: 最初に、マウス/ポインターが、記録される新しい位置としてカウントするのに十分な距離まで移動したかどうかを判断します。ある場合は、移動が 8 方向のどれであるかを判断し、それを移動のリストに追加します。
costLeven: 2 つのシーケンス間のレーベンシュタイン距離を計算します。この場合、定義済みの各ジェスチャ シーケンスとユーザーが入力したジェスチャ シーケンスとの間の距離を測定するために使用されます。基本的には、入力ジェスチャーに基づいてどの文字を出力するのが最適かを判断するために使用されます。レーベンシュタイン距離が小さいほど、一致度が高いことを示します。
matchGesture(meatureGesture に最も近い): ユーザーが入力したジェスチャを受け取り、定義済みのすべてのジェスチャと照合して、レーベンシュタイン距離に基づいて最適な一致を見つけます。十分に近い一致がある場合、最も一致する定義済みジェスチャのキーが onGestureListener.onGesture() に渡され、何らかのアクションがトリガーされます。この場合、文字を画面に出力します。