За эти годы я видел этот вопрос, казалось бы, огромное количество раз. Поэтому я написал небольшой инструмент, который будет делать именно это. Образец кусочно-линейной или даже криволинейной (сплайновой) дуги в общем количестве измерений, чтобы последовательные точки находились на одинаковом или заданном расстоянии вдоль этой дуги.
В случае использования просто кусочно-линейных дуг это довольно просто. Вы суммируете общую длину дуги кривой, затем выполняете интерполяцию по длине дуги, но, поскольку она, как известно, является кусочно-линейной, требуется только линейная интерполяция по этой длине как функция кумулятивной длины дуги.
В случае изогнутой дуги это легче всего сделать как решение системы обыкновенных дифференциальных уравнений, следящих за событиями на этом пути. ODE45 делает это красиво.
Вы можете использовать interparc , как это можно найти на MATLAB Central File Exchange, чтобы сделать это для вас, или если вы хотите научиться делать это самостоятельно для простого кусочно-линейного случая, прочитайте первую часть кода, где я делаю кусочно-линейную интерполяцию длины дуги. Хорошо, что линейный случай выполнен в полностью векторизованном виде, поэтому явных циклов не требуется.