转自《工程计算可视化与 MATLAB 实现》尚涛等编著 武汉大学出版社(1)两直线相交function [X,Y]=pll(X1,Y1,X2,Y2)% 直线相交求交点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;调用格式:x1=[1 5];y1=[1 5];x2=[1 5];y2=[5,1];[x,y]=pll(x1,y1,x2,y2);plot(x1,y1,\'r\');hold onplot(x2,y2,\’b\’);plot(x,y,\’ko\');(2)直线与多条直线相交xi=[1 2 3 4 5];yi=[2 6 3 6 1];plot(xi,yi);hold onx1=[1 5];y1=[4 5];line(x1,y1);x=zeros(size(xi));y=x;for i=1:5—1x2=xi([i i+1]);y2=yi([i i+1]);[x,y]=pll(x1,y1,x2,y2);plot(x,y,\'ro\')end(3)直线与曲线相交x=-8:0.1:8;y=x;[X,Y]=meshgrid(x,y);R=sqrt(X.^2+Y。^2)+eps;Z=sin(R)。/R;contour(Z,3);hold onc=contour(Z,3);x=[0 360];y=[0 400];y=(y(2)-y(1))/(x(2)-x(1))*(x—x(1))+y(1);z=[0 0];line(x,y,z);c=c\’;X=c(:,1);Y=c(:,2);r0=abs(Y—(y(2)—y(1))/(x(2)—x(1))*(X-x(1))+y(1))<=。93;zz=0;yy=r0.*Y;xx=r0.*X;plot(xx(r0~=0),yy(r0~=0),\'r\')(4)曲线与曲线相交x=0:pi/400:2*pi;x=x\’;y1=sin(pi*x);y2=cos(pi*x);plot(x,y1,x,y2);hold onr0=abs(y2—sin(pi*x))〈=0.02;yy=r0.*y1;xx=r0.*x;plot(xx(r0~=0),yy(r0~=0),\’r.\’)(5)直线与曲面相交x=-8:0.3:8;y=x;[X,Y]=meshgrid(x,y);Z=X.^2+Y。^2;mesh(X,Y,Z);hold onx=[-10 10];y=[-10 3];z=[30 35];line(x,y,z);r0=(abs(Y—y(1)-(y(2)—y(1))/(x(2)-x(1))*(X—x(1)))〈=0。45)&。。.(abs(Z—z(1)—(z(2)—z(1))/(x(2)—x(1))*(X-x(1)))<0。45)&..。(abs(Y-y(1)-(y(2)-y(1))/(z(2)—z(1))*(Z-z(1)))<=0。45);zz=r0。*Z;yy=r0。*Y;xx=r0。*X;plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),\'r*\’);(6)平面与曲面相交x=—8:0。1:8;y=x;[X,Y]=meshgrid(x,y);Z1=2*ones(size(X));Z2=X。^2-Y。^2;mesh(X,Y,Z1);hold onmesh(X,Y,Z2);r0=(abs(Z1-Z2)<=。65);zz=r0.*Z1;yy=r...