已知三个点,用matlab如何求两条直线的夹角已知三个点(x1,y1),(x2,y2),(x3,y3),连接(x1,y1),(x2,y2)得到一条直线,连接(x2,y2),(x3,y3)得到第二条直线,如何用matlab求这两条直线的夹角,
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/22 12:30:15
已知三个点,用matlab如何求两条直线的夹角已知三个点(x1,y1),(x2,y2),(x3,y3),连接(x1,y1),(x2,y2)得到一条直线,连接(x2,y2),(x3,y3)得到第二条直线,如何用matlab求这两条直线的夹角,
已知三个点,用matlab如何求两条直线的夹角
已知三个点(x1,y1),(x2,y2),(x3,y3),连接(x1,y1),(x2,y2)得到一条直线,连接(x2,y2),(x3,y3)得到第二条直线,如何用matlab求这两条直线的夹角,请给出程序,用matlab哦,
已知三个点,用matlab如何求两条直线的夹角已知三个点(x1,y1),(x2,y2),(x3,y3),连接(x1,y1),(x2,y2)得到一条直线,连接(x2,y2),(x3,y3)得到第二条直线,如何用matlab求这两条直线的夹角,
% 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));
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(...
全部展开
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); % 转化为角度制
收起