首页 > 解决方案 > 在 3D 上计算矢量的方向

问题描述

我想知道计算矢量方向的理论。

例如,我想让 P2 紧跟在 P1 后面,而 P1 围绕 Z 移动。

示例图片

让我们 P1 不是负 Z,所以 P1 会有案例:(+, +, +), (+, -, +), (-, -, +), (-, +, +).

在这种情况下,我可以计算标量,但不能计算 P2 的方向。

比如我只计算P1和P2的坐标,把P2和结果放在一起,P2可以走在P1的前面而不是后面。

所以我想知道如何计算矢量方向?

我想知道“理论”。

谢谢你的帮助。

标签: mathvector

解决方案


首先:

设P1绕Z轴运动,其位置为(w为角速度)

Z1 = Z0
X1 = R * Cos(w * t)
Y1 = R * Sin(w * t)

P2的起始位置是

Z2 = Z0 // the same height, so later Z-component is not considered, vz = 0
X2 = 2 * R
Y2 = 0

在每一步,我们都应该计算 P1 的位置,并给 P2 一些位移以跟随 P1。

dx = X1 - X2
dy = Y1 - Y2
vx = dx * C
vy = dy * C
X2 = X2 + vx * dt
Y2 = Y2 + vy * dt

dt是计算之间的时间间隔,C 是一些速度 - 或常数,或取决于距离有一些限制。

v(vx, vy, vz) 是从当前 P2 位置指向当前 P1 位置的向量。


推荐阅读