三点速度
Velocity of three points
我在图像上有 3 个点 (a
, b
, c
) (t
) 和 3 个点 (a1
, b1
、c1
) 在时间 (t-1
)。每个点都有 (x
, y
, z
) 坐标。我想计算每个点之间的速度和方向。计算a点和a1点之间的速度为:
Va= sqrt ((xt-xt-1)^2 + (yt-yt-1)^2 +(zt-zt-1)^2) / framerate
类似地,我们将计算 b
和 b1
、c
和 c1
之间的速度。
我想问的是,为了找到所有时间点的速度(t
)我将添加Va
、Vb
和Vc
的速度?我怎样才能找到方向?
你的速度是标量,通常速度是矢量。
要计算速度 vector 你需要
v = [ (x(t)-x(t-1)), (y(t)-y(t-1)), (z(t)-z(t-1))]/framerate;
现在v
是一个指向运动方向的矢量,它的大小是运动的"speed"
mag = sqrt( v*v' );
mag
应该等于 Va
你计算出来的。
不,所有速度都是矢量。在 3D 中,这意味着在 x- y- 和 z- 方向上有组件。
您需要使用差异来计算每个点的向量分量:
vx(1, t+dt) = (x(1, t+dt)-x(1, t))/dt
vy(1, t+dt) = (y(1, t+dt)-y(1, t))/dt
vz(1, t+dt) = (z(1, t+dt)-z(1, t))/dt
其中dt
是时间增量,(x(j, t), y(j, t), z(j, t))
是j点在t时刻的坐标,(vx(j, t), vy(j, t), vz(j, t))
是j点在t时刻的速度分量
一旦你有了它,通常的矢量运算就适用了。
我在图像上有 3 个点 (a
, b
, c
) (t
) 和 3 个点 (a1
, b1
、c1
) 在时间 (t-1
)。每个点都有 (x
, y
, z
) 坐标。我想计算每个点之间的速度和方向。计算a点和a1点之间的速度为:
Va= sqrt ((xt-xt-1)^2 + (yt-yt-1)^2 +(zt-zt-1)^2) / framerate
类似地,我们将计算 b
和 b1
、c
和 c1
之间的速度。
我想问的是,为了找到所有时间点的速度(t
)我将添加Va
、Vb
和Vc
的速度?我怎样才能找到方向?
你的速度是标量,通常速度是矢量。
要计算速度 vector 你需要
v = [ (x(t)-x(t-1)), (y(t)-y(t-1)), (z(t)-z(t-1))]/framerate;
现在v
是一个指向运动方向的矢量,它的大小是运动的"speed"
mag = sqrt( v*v' );
mag
应该等于 Va
你计算出来的。
不,所有速度都是矢量。在 3D 中,这意味着在 x- y- 和 z- 方向上有组件。
您需要使用差异来计算每个点的向量分量:
vx(1, t+dt) = (x(1, t+dt)-x(1, t))/dt
vy(1, t+dt) = (y(1, t+dt)-y(1, t))/dt
vz(1, t+dt) = (z(1, t+dt)-z(1, t))/dt
其中dt
是时间增量,(x(j, t), y(j, t), z(j, t))
是j点在t时刻的坐标,(vx(j, t), vy(j, t), vz(j, t))
是j点在t时刻的速度分量
一旦你有了它,通常的矢量运算就适用了。