Простой метод заключается в следующем ...
Сначала создайте функцию interp(t, T, waypoints)
, которая с учетом текущего времени t
, общей продолжительности пути T
и пути waypoints
возвращает текущую позицию. Это может быть сделано с использованием линейной интерполяции или более сложных подходов, чтобы избежать разрывов скорости или ускорения.
Если у вас есть interp
, средний путь может быть определен как (пример на python)
def avg(t, T1, waypoints1, T2, waypoints2):
T = (T1 + T2) / 2
return middlePoint(interp(t*T1/T, T1, waypoints1),
interp(t*T2/T, T2, waypoints2))
длительность среднего пути будет средним T = (T1 + T2) / 2
из двух длительностей.
Также легко изменить этот подход, чтобы получить средневзвешенный путь.