我有两点,分别是a
和b
。我需要计算它们之间的角度,所以我把它们当作矢量来对待。但矢量a
将始终定义为[0 0 0]。阅读在MATLAB新闻阅读器,“Angle between two vectors”,提供了三种解决方案:Matlab中两个向量之间的角度
x1 = 0;
y1 = 0;
z1 = 0;
x2 = 0;
y2 = 1;
z2 = 0;
a = [x1,y1,z1]; b= [x2,y2,z2];
theta = rad2deg(atan2(norm(cross(a,b)),dot(a,b)))
theta = rad2deg(acos(dot(a,b)))
theta = rad2deg(atan2(x1*y2-x2*y1,x1*x2+y1*y2))
然而,随着acos
具有测量精度问题THETA接近零,但出了三个方程中,只有acos
提供正确的解决方案。
我应该继续使用acos
还是有更好的解决方案?
什么是两点之间的角度?当两个矢量之一是[0 0 0]时,两个矢量之间的角度是多少? – Henrik 2010-12-02 15:51:32