Swift 2D运动矢量-计算给定时间对象的位置
在给定时间移动某些对象时,我在理解2D运动矢量时遇到问题。我对线性代数的知识有限,我真的不知道要查找的确切搜索词,所以我想知道是否有人能帮助我,或者至少能向我指出正确的方向 我的问题是这样的: 我有两个点,一个起点和一个终点。它们各自有一个特定的位置,分别表示为x_1、x_2和y_1、y_2。这两个点都附有一个时间,分别命名为t_起点或t_终点。现在我想知道,对于给定的currentTime=基本上是t_起点和t_终点之间的任何时间点,在这两个点之间的连接线上,一个新的点N确切地位于哪里。我知道描述并不琐碎,这就是为什么我还添加了一个图像来描述我想做的事情: 到目前为止,这是我的算法: 函数更新时间:Int64{Swift 2D运动矢量-计算给定时间对象的位置,swift,algorithm,vector,geometry,game-physics,Swift,Algorithm,Vector,Geometry,Game Physics,在给定时间移动某些对象时,我在理解2D运动矢量时遇到问题。我对线性代数的知识有限,我真的不知道要查找的确切搜索词,所以我想知道是否有人能帮助我,或者至少能向我指出正确的方向 我的问题是这样的: 我有两个点,一个起点和一个终点。它们各自有一个特定的位置,分别表示为x_1、x_2和y_1、y_2。这两个点都附有一个时间,分别命名为t_起点或t_终点。现在我想知道,对于给定的currentTime=基本上是t_起点和t_终点之间的任何时间点,在这两个点之间的连接线上,一个新的点N确切地位于哪里。我知道
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))
//
然而,无论我做什么,我的物体总是超调,不规则地来回移动,我不知道从哪里开始。任何帮助都将不胜感激!对于匀速移动,有以下关系:
(t-t1) / (t2-t1) = (x-x1) / (x2-x1)
x = x1 + (x2-t1) * (t-t1) / (t2-t1)
因此,您的表达式看起来正确。请检查:
1 + (4-1) * (3-1) / (5-1) = 1 + 3 * 2 / 4 = 2.5 - exact middle, OK
你要找的术语是插值。