2012-02-25 82 views
0

如何查找3D速度矢量?我有射弹的起始位置,结束位置和速度。查找3D速度矢量

此外,如果目标正在移动,如何找到速度矢量?

任何帮助,非常感谢。

+4

如果th e物体沿着一条直线行进,然后得到方向矢量(结束位置减去开始位置),通过速度进行归一化和缩放。 – 2012-02-25 20:34:05

+1

您应该详细说明第二部分,例如目标是什么,我们对此有什么信息。 – Irfy 2012-02-25 20:38:16

+0

Target拥有诸如Location,Velocity等所有信息 – Djokovic 2012-02-25 20:41:49

回答

5

如果位置的部件是xy,并且z,那么你就可以分解导弹的运动:

dx = endPosition.x - startPosition.x 
dy = endPosition.y - startPosition.y 
dz = endPosition.z - startPosition.z 

您可以找到总运动:

d = sqrt(dx*dx + dy*dy + dz*dz) 

然后你可以计算速度矢量:

vx = dx/d * missileSpeed 
vy = dy/d * missileSpeed 
vz = dz/d * missileSpeed 
+0

谢谢!移动目标如何?我必须找到目标的暂定位置,并确定导弹是否会击中目标。目标正在以自己的速度移动,并且射弹以一定的速度射击。 – Djokovic 2012-02-25 21:04:09

+0

使用相同的技术:计算在x,y和z方向上的目标运动。您可以在时间t'沿轴计算目标的位置为'x0 + t * vx',其中'x0'是其轴上的起始位置,'vx'是它沿轴的速度。计算沿x,y和z轴的位置;然后为导弹做同样的事情。如果两个物体同时在同一地点,则导弹击中目标。 – 2012-02-25 21:13:11