Смотря как быстро движется. И есть ли пересечения похожих.
Если пересечений нет, то думаю не сложно. Отловить момент начала и конца. Сохраняем положение.
В быстром цикле делать поиск. Здесь возможны варианты.
1. Делаем поиск в определённой зоне от старого положения. Обновляем новое значение.
2. Ищем все и выбираем ближайший к старому положению (надеемся на то, что скорость поиска довольно частая). Обновляем новое значение.
Если есть пересечения типа
X
\
X--X--X
\
X
То храним не одно, а два преведущих значения. И если результат неоднозначный = под ответ попадают 2, сравниваем направление изменений и дальше следим за тем у кого вектор отклонился на меньшее значение. Это будет работать если нет мухлежа и они не могут отскакивать как биллиардные шары.
Кидай несжатые скрины. Пиши видео для оценки скорости и общего понимания. Надеюсь помогут.