Я пытаюсь придумать алгоритм, который определит поворотные точки в траектории координат x/y. На следующих рисунках показано, что я имею в виду: зеленый указывает начальную точку и красную конечную точку траектории (вся траектория состоит из ~ 1500 точек):
На следующем рисунке я вручную добавил возможные (глобальные) точки поворота, которые мог вернуть алгоритм:
Очевидно, что истинная точка поворота всегда спорна и будет зависеть от угла, что один определяет, что должно лежать между точками. Кроме того, поворотный момент можно определить в глобальном масштабе (что я пытался сделать с черными кругами), но также можно определить в локальном масштабе высокого разрешения. Меня интересуют глобальные (общие) изменения направления, но мне бы хотелось обсудить обсуждение различных подходов, которые можно было бы использовать, чтобы разделить глобальные и локальные решения.
Что я пробовал до сих пор:
- рассчитать расстояние между последующими точками
- вычислить угол между последующими точками
- Посмотрите, как изменяется расстояние/угол между последующими точками.
К сожалению, это не дает мне никаких надежных результатов. Вероятно, я слишком вычислил кривизну вдоль нескольких точек, но это просто идея. Я бы очень признателен за любые алгоритмы/идеи, которые могут помочь мне здесь. Код может быть на любом языке программирования, предпочтительнее использовать matlab или python.
ИЗМЕНИТЬ здесь необработанные данные (в случае, если кто-то хочет поиграть с ним):
- файл мата
- текстовый файл (сначала координата x, координата y во второй строке)