关于matlab求向量夹角问题

[复制链接]
4259|2
 楼主| 莫负好春光 发表于 2018-12-11 17:48 | 显示全部楼层 |阅读模式
微信图片_20181211170244.jpg
平面坐标系中存在三点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是所求角度')
微信图片.png
这里输入的坐标是A(0,2)、B(2,2)、C(2,0),CA向量与CB向量之间的夹角应该是45度,结果这里求出是60度。
求大神帮忙找下错误。万分感谢!

xxzouzhichao 发表于 2018-12-11 19:00 来自手机 | 显示全部楼层
atan2了解一下

评论

感谢  发表于 2019-1-3 20:02
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部