永发信息网

已知三个点,用matlab如何求两条直线的夹角

答案:3  悬赏:20  手机版
解决时间 2021-12-26 11:03
已知三个点(x1,y1),(x2,y2),(x3,y3),连接(x1,y1),(x2,y2)得到一条直线,连接(x2,y2),(x3,y3)得到第二条直线,如何用matlab求这两条直线的夹角,请给出程序,用matlab哦,求高手帮助
最佳答案
function a=JiaJiao(x,y)
% 求两条直线夹角
% x,y 是已知三点的横坐标和纵坐标
% eg: x=[1 2 3];y=[4 1 5];
if x(2)~=x(1)
k1=(y(2)-y(1))/(x(2)-x(1));
end
if x(3)~=x(2)
k2=(y(3)-y(2))/(x(3)-x(2));
end
if x(2)==x(1) & x(3)==x(2)
a=0;
elseif x(3)==x(2)
a=pi/2-atan(abs(k1));
elseif x(1)==x(2)
a=pi/2-atan(abs(k2));
elseif 1+k1*k2==0
a=pi/2;
else
a=atan(abs((k2-k1)/(1+k2*k1))); % 夹角
end
a=a*360/(2*pi); % 转化为角度制
全部回答
% theta=acosd(dot([x1-x2,y1-y2],[x3-x2,y3-y2])/(norm([x1-x2,y1-y2])*norm([x1-x2,y3-y2]))) theta=acosd(dot([2-3,5-2],[7-3,4-2])/(norm([2-3,5-2])*norm([7-3,4-2])))
用一下的三角公式求解: cosA=(c^2+b^2-a^2)/2bc cosB=(c^2+a^2-b^2)/2ac cosC=(a^2+b^2-c^2)/2ab 程序如下: a=norm([x1-x3,y1-y3]); b=norm([x2-x3,y2-y3]); c=norm([x1-x2,y1-y2]); alpha=acos((b^2+c^2-a^2)/(2*b*c));
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
无度数的眼镜对眼镜有害吗
科目一没考,可以直接跳过,去学车吗
0.15°=________.
如果自己的东西让自己的朋友偷了、那怎么样才
由某人设计的英文怎样翻译??design??急急
单选题智者学派和苏格拉底思想的相同点是A.以
新红星苹果树修剪方法
坐着忽然岔气了怎么办?很疼,不能呼吸了.
水除了可以变成雨雪冰雹以外还可以变成什么
Marcq-en-Baroeul是什么意思
怎么跟淘宝投诉同行恶意晒图诋毁
单选题生活中的下列现象,不能说明气体的溶解
饥荒蜘蛛女王怎么生蜘蛛巢
保龙一族之龙游潜水有王宝强吗?
现在上海小升初没有杯赛了吗
推荐资讯
单选题下列哪项不是诸葛亮治蜀的主要措施A.减
劲捷车业有限公司呈捷机动车安全检测站地址在
单选题在华盛顿会议上,除英美之外,取得海军
电脑坏了最简单的办法如何处理?
兰蔻的化妆品怎么样
比亚迪F6不起动有油有火发动机做了大修
(1)开启啤酒瓶盖瞬间伴有“嘭”的一声,瓶
楼房出售广告怎么写
我女儿今年上小学四年级因我们长年在这里打工
本题有两小题:(1)如图所示是“比较水和煤
胡须长得快表示什么
单选题1871年德意志宪法所规定的政体相似于今
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?