三点速度

Velocity of three points

我在图像上有 3 个点 (a, b, c) (t) 和 3 个点 (a1, b1c1) 在时间 (t-1)。每个点都有 (x, y, z) 坐标。我想计算每个点之间的速度和方向。计算a点和a1点之间的速度为:

Va= sqrt ((xt-xt-1)^2 + (yt-yt-1)^2 +(zt-zt-1)^2) / framerate    

类似地,我们将计算 bb1cc1 之间的速度。
我想问的是,为了找到所有时间点的速度(t)我将添加VaVbVc的速度?我怎样才能找到方向?

你的速度是标量,通常速度是矢量。
要计算速度 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时刻的速度分量

一旦你有了它,通常的矢量运算就适用了。