Подход, который я мог бы придумать, состоял бы в том, чтобы иметь серию (X, Y) координат, представляющих точки вдоль жеста.В небольшом масштабе, если жест, прошедший через ваш экран, был изображен так:
| 1 | 1 | 1 |
| 1 | 0 | 0 |
|1 | 0 | 0 |
и представлен (из верхнего левого угла, представляющего 0,0):
(0,2) (0,1) (0,0) (0,1) (0,2)
Разбейте координаты x, y на отдельные двумерные массивы с общим расстоянием, пройденным между текущей координатой и первой точкой (во всех случаях в этом примере оно будет увеличиваться на 1), таку вас будет два массива:
X: (0,0) (1,1) (2,2)
Y: (0,1) (1,1) (2,2)
Теперь выполните наименьший квадрат для каждого массива, чтобы найти наиболее близкое представление об изменении x и изменении y в виде квадратичных функций.Сделайте то же самое со своими жестами для каждого детерминации, а затем вставьте координаты x, y ваших определенных жестов в квадратичную функцию жеста пользователя и в определенные вами жесты и посмотрите, какой из них соответствует ближайшему.Это ваш жест.
(я никогда не пробовал обрабатывать жесты, но не понимаю, почему это не сработает)