Vector 基于速度和角度的矢量计算

Vector 基于速度和角度的矢量计算,vector,coordinates,angle,Vector,Coordinates,Angle,我很难将向量知识应用到实际情况中:我正在致力于实现一种基于纸张的船舶近碰撞检测算法(不是预测器)。我得到的数据是每艘船的位置(x,y)、航向(与北方的角度)和航速(假设只有船A和船B) 我需要的三个组件是:船舶之间的相对速度,平行于船舶航向的单位矢量,垂直于相对速度的单位矢量(整体公式见第4章)。论文中给出了第一个公式,而我从一本数学书中得到的第二个公式是: 1) relative velocity V(BA) = C(B) - C(A) (all vectors; within bracket

我很难将向量知识应用到实际情况中:我正在致力于实现一种基于纸张的船舶近碰撞检测算法(不是预测器)。我得到的数据是每艘船的位置(x,y)、航向(与北方的角度)和航速(假设只有船A和船B)

我需要的三个组件是:船舶之间的相对速度,平行于船舶航向的单位矢量,垂直于相对速度的单位矢量(整体公式见第4章)。论文中给出了第一个公式,而我从一本数学书中得到的第二个公式是:

1) relative velocity V(BA) = C(B) - C(A) (all vectors; within brackets -> subscript)
我假设C的意思是航向(这是一个角度)。根据我的理解,相对速度是用距离来衡量的,而矢量有大小(速度?)和方向(航向?)

2)单位矢量=矢量/幅值
3) 垂直向量=任意向量点积=0
因此,我的问题是:如何使用我拥有的数据(即速度、航向、位置)来计算这些方程式


关于向量,计算向量时想到的唯一一件事是使用两个点(2 x,y对),但在这种情况下这似乎很奇怪。

假设你在坐标
x
(水平,从西到东为正值)和
y
(垂直,从南到北为正值),每艘船的航速
s
和航向
c
(相对于北方的角度,顺时针)

您可以使用以下方法获得速度的笛卡尔分量vx和vy:

vy=
s
cos(
c

vx=
s
sin(
c


然后你可以随意移动。

假设你在坐标
x
(水平,从西到东为正)和
y
(垂直,从南到北为正),每艘船的航速
s
和航向
c
(相对于北的角度,顺时针方向)

您可以使用以下方法获得速度的笛卡尔分量vx和vy:

vy=
s
cos(
c

vx=
s
sin(
c


然后你可以随心所欲。

这不是一个真正的Python问题,因为它是纯数学?速度是一个向量,它有大小和方向。不,它可能不是一个角度,而是向量减法。你似乎在将极向量(幅度,角度方向)转换为笛卡尔(水平幅度,垂直幅度)时遇到了困难。你可以。如果一艘船向东行驶4米,向北行驶3米,而另一艘船向南行驶1米,向西行驶3米。我将系统定义为沿x轴向东,沿y轴向北。第一艘船的速度是(4,3),另一艘船的速度是(-1,-3)。相对向量是(4,3)-(-1,-3)=[(4-(-1)),(3-(-3))]=(5,6)。这不是一个真正的Python问题,因为它是纯数学?速度是一个向量,它有大小和方向。不,它可能不是一个角度,而是向量减法。你似乎在将极向量(幅度,角度方向)转换为笛卡尔(水平幅度,垂直幅度)时遇到了困难。你可以。如果一艘船向东行驶4米,向北行驶3米,而另一艘船向南行驶1米,向西行驶3米。我将系统定义为沿x轴向东,沿y轴向北。第一艘船的速度是(4,3),另一艘船的速度是(-1,-3)。相对向量是(4,3)-(1,-3)=[(4-(-1)),(3-(-3))]=(5,6)。所以在我的例子中,我会对每艘飞船进行Vy+Vx以获得向量CB和CA;对于相对速度,我只做CB-CA,对吗?我有一种感觉,我真的错过了一次机会,似乎你很困惑。因为每个向量有两个分量,CA=(vx,A,vy,A)和CB=(vx,B,vy,B)。这将使VBA=(vx,B-vx,A,vy,B-vy,A)。那么速度是一个向量吗?还是向量的大小?Wiki声明速度是数量级,因此速度应该是
s=sqrt(x^2+y^2)
,其中x和y(我假设)是笛卡尔分量。这是正确的吗?让我困惑的是速度(矢量?)和速度(标量?)都是用距离/时间来衡量的。上面的Vy计算是距离^2/次(?!)不,速度是一个标量,它是速度的大小,它是一个向量。2D中的矢量可以通过其在每个轴上的分量(vx和vy)或其大小和方向来描述。想象一个直角三角形,斜边的长度是速度,每个天琴座是x和y方向向量的一个组成部分。在这种情况下,所有这些量都是以相同的单位、距离/时间测量的,并且由于三角法则,您可以通过其中两个或其中一个与一个或两个角度的任意组合来描述向量。看Simon对你的原始问题的评论。所以在我的例子中,我会对每艘飞船进行Vy+Vx,以获得向量CB和CA;对于相对速度,我只做CB-CA,对吗?我有一种感觉,我真的错过了一次机会,似乎你很困惑。因为每个向量有两个分量,CA=(vx,A,vy,A)和CB=(vx,B,vy,B)。这将使VBA=(vx,B-vx,A,vy,B-vy,A)。那么速度是一个向量吗?还是向量的大小?Wiki声明速度是数量级,因此速度应该是
s=sqrt(x^2+y^2)
,其中x和y(我假设)是笛卡尔分量。这是正确的吗?让我困惑的是速度(矢量?)和速度(标量?)都是用距离/时间来衡量的。上面的Vy计算是距离^2/次(?!)不,速度是一个标量,它是速度的大小,它是一个向量。2D中的矢量可以通过其在每个轴上的分量(vx和vy)或其大小和方向来描述。想象一个直角三角形,斜边的长度是速度,每个天琴座是x和y方向向量的一个组成部分。在这种情况下,所有这些量都是以相同的单位(距离/时间)测量的,并且由于三角法则,您可以通过其中两个的任意组合来描述向量
2) unit vector = vector / magnitude
3) perpendicular vector = any vector <=> dot product = 0