Лучший подход - использовать параметрические уравнения
x = x1 + t*(x2 - x1)
y = y1 + t*(y2 - y1)
где t
- параметр времени, изменяющийся от 0 до 1 (0,5 означает, например, наполовину).
Если вам также нравится, что ваше движение "мягкое" (начиная с нулевой скорости, затем ускоряется, затем замедляется и останавливается в точке прибытия), вы можете использовать это измененное уравнение
w = 3*t*t - 2*t*t*t
x = x1 + w*(x2 - x1)
y = y1 + w*(y2 - y1)
Ниже приведен график кривой w
по сравнению с линейным распределением t
с 11 точками (t = 0,0, 0,1, ... 0,9, 1,0):