原文地址:matlab求四个点确定的两条直线的交点作者:s never st背景: 1,已知:平面上的四个点 x1,y1,x2,y2 其中,x1与y1确定一条直线,x2与y2确定一条直线 2,任务:求解x1与y1确定的直线,x2与y2确定的直线的交点 3,背景:在网上找了好久只找到了一下代码,号称是某本教材里的代码,但是试了一下,有时候可以有时候不可以,郁闷 网上找的,不太给力的代码-- f nction [x y]=node(x1,y1,x2,y2) k1=(y1(2)-x1(2))(y1(1)-x1(1)); k2=(y2(2)-x2(2))(y2(1)-x2(1)); b1=x1(2)-k1*y1(1); b2=x2(2)-k2*y2(1); x=(b2-b1)(k1-k2); y=k1*x+b1; a1=y1(1)-y1(2); b1=x1(2)-x1(1); c1=y1(2)*x1(1)-y1(1)*x1(2); a2=y2(1)-y2(2); b2=x2(2)-x2(1); c2=y2(2)*x2(1)-y2(1)*x2(2); d=det([a1,b1;a2,b2]); x=det([-c1 b1;-c2 b2])d y=det([a1 -c1;a2,-c2])d -华丽的分割线- 以下为在网上寻找代码未果后,个人带着失望与不屑书写的matlab代码: 个人给力代码-- f nction [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;