Angles between 3 vector in 3d

16 ビュー (過去 30 日間)
barbar
barbar 2014 年 2 月 5 日
コメント済み: barbar 2014 年 2 月 5 日
Hi I am trying to find angle between 3 vectors;
Terminal vector:-0.063695 -0.588189 2.333766
1. vector: 0.008239 -0.640457 2.295980 2.vector: -0.024011 -0.216596 2.461521
Could anyone help me?
Thanks in advance

採用された回答

Mischa Kim
Mischa Kim 2014 年 2 月 5 日
You can make use of the dot product (between vectors):
vec1 = [-0.063695 -0.588189 2.333766];
vec2 = [0.008239 -0.640457 2.295980];
angle_12 = acos(dot(vec1,vec2)/(norm(vec1)*norm(vec2)))
and similar for the other pairs of vectors.
  3 件のコメント
Mischa Kim
Mischa Kim 2014 年 2 月 5 日
I see...
vec = [-0.063695 -0.588189 2.333766];
vec1 = [0.008239 -0.640457 2.295980];
vec2 = [-0.024011 -0.216596 2.461521];
dv1 = vec1 - vec;
dv2 = vec2 - vec;
angle_12 = acos(dot(dv1,dv2)/(norm(dv1)*norm(dv2)))
barbar
barbar 2014 年 2 月 5 日
Thank you.I guess displacement calc. should work for my situation.

サインインしてコメントする。

その他の回答 (1 件)

Roger Stafford
Roger Stafford 2014 年 2 月 5 日
The 'atan2' function is more accurate than 'acos' for vectors that are nearly parallel. For two 3D vectors v1 and v2, do this:
ang = atan2(norm(cross(v1,v2)),dot(v1,v2));
This angle will be in radians.

カテゴリ

Help Center および File ExchangeDevelop Apps Using App Designer についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by