平面坐标系中存在三点A(xa,ya)、B(xb,yb)、C(xc,yc),由这三点构成的两个向量CA、CB,如何用MATLAB实现求CA与CB的夹角(C的角)。
我写了一个程序,用的方法主要是求出cos值,然后用acos函数反求角度。可是运行出来的结果总是不对的,尝试还了x、y的位置还是不对,实在找不到是什么原因了,求大神指点。
clc;
clear;
A=input('请按位置依次输入坐标xaA1)、ya(A2)、xb(A3)、yb(A4)、xc(A5)、yc(A6):');
b=((A(1)-A(5))*(A(3)-A(5))+(A(2)-A(6))*(A(4)-A(6)));
c=sqrt((A(1)-A(5))^2+(A(4)-A(6))^2)*sqrt((A(1)-A(5))^2+(A(2)-A(6))^2);
CosO=b/c;
O=acos(CosO); %数值表示度
O1=O*180/pi;
disp('O1是所求角度')
这里输入的坐标是A(0,2)、B(2,2)、C(2,0),CA向量与CB向量之间的夹角应该是45度,结果这里求出是60度。
求大神帮忙找下错误。万分感谢!
|