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

[复制链接]
查看11 | 回复3 | 2010-9-15 10:38:19 | 显示全部楼层 |阅读模式
已知三个点(x1,y1),(x2,y2),(x3,y3),连接(x1,y1),(x2,y2)得到一条直线,连接(x2,y2),(x3,y3)得到第二条直线,如何用matlab求这两条直线的夹角,请给出程序,用matlab哦,求高手帮助

回复

使用道具 举报

千问 | 2010-9-15 10:38:19 | 显示全部楼层
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));endif x(3)~=x(2)
k2=(y(3)-y(2))/(x(3)-x(2));endif 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))
回复

使用道具 举报

千问 | 2010-9-15 10:38:19 | 显示全部楼层
% 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])))
回复

使用道具 举报

千问 | 2010-9-15 10:38:19 | 显示全部楼层
用一下的三角公式求解:cosA=(c^2+b^2-a^2)/2bccosB=(c^2+a^2-b^2)/2accosC=(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=aco
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行