Angles between 3 vector in 3d

13 次查看(过去 30 天)
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 CenterFile Exchange 中查找有关 Develop 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