Matlab计算两条直线的交点坐标

    技术2026-01-11  10

    %% 已知两条直线的斜率和截距,求交点坐标 function [x,y]=linecross(k1,b1,k2,b2) x=[]; y=[]; if k1==k2&b1==b2 disp('chong he'); elseif k1==k2&b1~=b2 disp('wu jiao dian'); else x=(b2-b1)/(k1-k2); y=k1*x+b1; % disp('x='); % disp(x); % disp('y='); % disp(y); end %% 已知两条直线的两个端点,求其交点坐标 % 背景: % 1、已知:平面上的四个点 X1,Y1,X2,Y2 % 其中,X1与Y1确定一条直线,X2与Y2确定一条直线 % 2、任务:求解X1与Y1确定的直线,X2与Y2确定的直线的交点 function [X Y]= node( X1,Y1,X2,Y2 ) if X1(1)==Y1(1) X=X1(1); k2=(Y2(2)-X2(2))/(Y2(1)-X2(1)); b2=X2(2)-k2*X2(1); Y=k2*X+b2; end if X2(1)==Y2(1) X=X2(1); k1=(Y1(2)-X1(2))/(Y1(1)-X1(1)); b1=X1(2)-k1*X1(1); Y=k1*X+b1; end if X1(1)~=Y1(1)&X2(1)~=Y2(1) k1=(Y1(2)-X1(2))/(Y1(1)-X1(1)); k2=(Y2(2)-X2(2))/(Y2(1)-X2(1)); b1=X1(2)-k1*X1(1); b2=X2(2)-k2*X2(1); if k1==k2 X=[]; Y=[]; else X=(b2-b1)/(k1-k2); Y=k1*X+b1; end end
    Processed: 0.041, SQL: 9