Вверх / вниз проведите
Я пытаюсь обнаружить пролистывание вверх и вниз, используя ту же логику, что и для пролистывания вправо и влево. Вот что я придумал.
// Upward Swipe
if (ScanPositions((p1, p2) => Math.Abs(p2.Y - p1.Y) > 0.4f, // Height
(p1, p2) => p2.Y - p1.Y > -0.01f, // Progression Upwards
(p1, p2) => Math.Abs(p2.X - p1.X) < 0.2f, // Length
SwipeMininalDuration, SwipeMaximalDuration))// Duration
{
RaiseGestureDetected("Upward Swipe Gesture Detected");
return;
}
// Downward Swipe
if (ScanPositions((p1, p2) => Math.Abs(p2.Y - p1.Y) > 0.4f, // Height
(p1, p2) => p2.Y - p1.Y < 0.01f, // Progression Downwards
(p1, p2) => Math.Abs(p2.X - p1.X) < 0.2f, // Length
SwipeMininalDuration, SwipeMaximalDuration))// Duration
{
RaiseGestureDetected("Downward Swipe Gesture Detected");
return;
}
Используя ту же логику, что и для пролистывания влево / вправо, для функции heightFuntion я сказал, что разница между p2 и p1 по оси y должна быть больше 40 и т. Д. И т. Д. (Как видно из кода). Я был очень уверен, что это сработает, но все равно не дает точных результатов жестов при тестировании. Иногда он дает вывод "обнаружен нисходящий скачок", хотя на самом деле он направлен вверх. Иногда он ошибается между левым и восходящим движением. Можете ли вы сказать мне, где я делаю ошибку? Содержит ли алгоритм, который я только что опубликовал, ошибки? Или мне нужно изменить что-то еще в Kinect Toolbox? Я хочу, чтобы в одном и том же приложении можно было обнаруживать пролистывание вверх, вниз, влево и вправо. Спасибо