我有兩點,分別是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