1

私は 3 つの船を持っており、これらの船の方向はV1V2およびで与えられ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は、「離れて」V1および「に向かって」V2(図に示されている)、その場合は容器#3 は船 #1 の一部です。

MATLAB でこれを行うにはどうすればよいですか?

4

2 に答える 2

2

2 つの方向ベクトルの内積を取るだけです。s = V1.'*V3;

答えが正の場合、2 つのベクトルは収束します (同じ方向を指します)。

答えが負の場合、2 つのベクトルは発散します (互いに遠ざかります)。

2 つの 2 つのベクトルが垂直の場合、内積はゼロになり、平行の場合は 1 になります。

なんで?

内積は 2 つのベクトル間の角度のコサインを表すためです。

a · b = |a| |b| cos(θ)

角度が π/2 より大きい場合、コサインは負になり、ベクトルは互いに「離れて」います。

于 2013-06-05T15:11:56.030 に答える
0

V1「近づく」かどうかを確認する方法は次のとおりです。V2

V1の最初の座標と線分の間の最小距離を計算しますV2。の 2 番目の座標についても同じことを行いV1ます。

V21 番目の座標が 2 番目の座標よりも遠い場合は、接近していると見なしますV1

于 2013-06-05T14:25:55.210 に答える