打印

关于matlab求向量夹角问题

[复制链接]
3818|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

平面坐标系中存在三点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度。
求大神帮忙找下错误。万分感谢!

相关帖子

沙发
xxzouzhichao| | 2018-12-11 19:00 | 只看该作者
atan2了解一下

使用特权

评论回复
评论
莫负好春光 2019-1-3 20:02 回复TA
感谢 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

14

帖子

0

粉丝