我有三艘船,这些船的方向由V1
,V2
和V3
提供:
V1 = [0.7030 -0.7112]
V2 = [0.5099 -0.8602]
V3 = [-0.6799 -0.7333]
这是他们的图形可视化:
如何V3
“接近”V2
(如图所示)或“离开”V2
?我想检查第3号船只是#1号船只或2号船只的一部分,即如果船只#3从船只#1分支,那么V3
离“{{ 1}}和“朝向”V1
(如图所示),在这种情况下,船只#3是船只#1的一部分。
如何在MATLAB中执行此操作?
答案 0 :(得分:2)
您所要做的就是获取两个方向向量s = V1.'*V3;
现在,如果答案是肯定的,那么两个向量会聚(指向同一个方向)。
如果答案为否定,则两个向量发散(指向彼此)
当两个向量垂直时,点积为零,当它们平行时等于1.
<强>为什么吗
因为点积表示两个矢量之间角度的余弦。
a · b = |a| |b| cos(θ)
当角度大于π/ 2时,余弦为负,矢量指向彼此“远离”。
答案 1 :(得分:0)
以下是查看“V1
”是否接近“V2
计算V1
的第一个坐标与线段V2
之间的最小距离。
对V1
的第二个坐标执行相同的操作。
如果第一个坐标超过第二个坐标,请考虑V2
接近V1