У меня проблемы с пониманием двухмерных векторов движения при перемещении определенных объектов в данный момент времени.Мои знания по линейной алгебре ограничены, и я действительно не знаю точных условий поиска, поэтому я хотел узнать, может ли кто-нибудь мне помочь или хотя бы намекнуть мне в правильном направлении.
Моя проблемавыглядит следующим образом:
У меня есть две точки, начальная точка и конечная точка в пространстве.У каждого из них есть определенное местоположение, обозначенное как (x_1, x_2) и (y_1, y_2) соответственно.Обе эти точки имеют привязанное время, называемое t_startPoint или t_endPoint, соответственно.Теперь я хочу выяснить, для данного currentTime (= практически любого момента времени, который находится между t_startPoint и t_endPoint), где именно будет расположена новая точка N на линии соединения между этими двумя точками.Я знаю, что описание не тривиально, и поэтому я также добавил изображение, описывающее то, что я хотел бы сделать:
Пока это то, чтоУ меня есть мой алгоритм:
func update (_ time: Int64) {
let t_startPoint: Int64 = 1
let position_startPoint: = (1.0, 1.0)
let t_endPoint: Int64 = 5
let position_endPoint: Vector = (4.0, 5.0)
let currentTime = 3
let duration = t_endPoint - t_startPoint
let x = position_startPoint.x + ((position_endPoint.x - position_startPoint.x) / Float(duration)) * (Float(currentTime - t_startPoint))
let y = position_startPoint.y + ((position_endPoint.y - position_startPoint.y) / Float(duration)) * (Float(currentTime - t_startPoint))
//
Однако, независимо от того, что я делаю, мои объекты продолжают перебегать, беспорядочно перемещаться взад-вперед иЯ не знаю с чего начать.Любая помощь будет принята с благодарностью!