前几天本人遇到了一些难题,就是怎样求曲线的交点,不过现在找到了一些源程序,和与我遇到相同问题的朋友们分享一下!

转自《工程计算可视化与MATLAB实现》尚涛等编著 武汉大学出版社

两直线相交

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 on

plot(x2,y2,'b');

plot(x,y,'ko');

直线与多条直线相交

xi=[1 2 3 4 5];yi=[2 6 3 6 1];

plot(xi,yi);hold on

x1=[1 5];y1=[4 5];line(x1,y1);

x=zeros(size(xi));

y=x;

for i=1:5-1

x2=xi([i i+1]);y2=yi([i i+1]);

[x,y]=pll(x1,y1,x2,y2);

plot(x,y,'ro')

end

直线与曲线相交

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 on

c=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')

曲线与曲线相交

x=0:pi/400:2*pi;

x=x\';

y1=sin(pi*x);y2=cos(pi*x);plot(x,y1,x,y2);hold on

r0=abs(y2-sin(pi*x))<=0.02;

yy=r0.*y1;xx=r0.*x;plot(xx(r0~=0),yy(r0~=0),'r.')

直线与曲面相交

x=-8:0.3:8;y=x;[X,Y]=meshgrid(x,y);

Z=X.^2+Y.^2;

mesh(X,Y,Z);hold on

x=[-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*');

平面与曲面相交

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 on

mesh(X,Y,Z2);

r0=(abs(Z1-Z2)<=.65);

zz=r0.*Z1;yy=r0.*Y;xx=r0.*X;

plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'k*')

clc

disp(\'观察曲面后,按任意键画交线\');

pause

clf

plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'k*');

%曲面与多个截平面相交

y=-10:0.5:10;

z=y;

[Z,Y]=meshgrid(z,y);

X=Z;

X1=0*ones(size(Z));

X2=3*ones(size(Z));

X3=-3*ones(size(Z));

Z4=(X.^2-Y.^2)/10;

mesh(X1,Y,Z);hold on

mesh(X2,Y,Z)

mesh(X3,Y,Z);

mesh(X,Y,Z4);

r1=(abs(X1-X)<0.05);

r2=(abs(X2-X)<0.05);

r3=(abs(X3-X)<0.05);

zz1=r1.*Z4;yy1=r1.*Y;xx1=r1.*X;

zz2=r2.*Z4;yy2=r1.*Y;xx2=r1.*X;

zz3=r3.*Z4;yy3=r1.*Y;xx3=r1.*X;

plot3(xx1(r1~=0),yy1(r1~=0),zz1(r1~=0),'k*');

plot3(xx2(r2~=0),yy2(r2~=0),zz2(r2~=0),'k*');

plot3(xx3(r3~=0),yy3(r3~=0),zz3(r3~=0),'k*');

colormap(hsv)

clc;

disp('观察曲面后,按任意键画交线');

hold off

平面与曲面相交

y=-8:0.4:8;

z=y;

[Z,Y]=meshgrid(z,y);

X=Z;

X1=zeros(size(Z));

Z2=zeros(size(Z));

Z3=(X.^2-Y.^2)/10;

mesh(X1,Y,Z);

hold on

mesh(X,Y,Z2);

mesh(X,Y,Z3);

r1=(abs(X1-X)<0.05);

r2=(abs(Z3-Z2)<0.05);

r3=(abs(X1-X)<0.05)&(abs(Z-Z2)<=0.05);

zz1=r1.*Z3;yy1=r1.*Y;xx1=r1.*X;

zz2=r2.*Z3;yy2=r2.*Y;xx2=r2.*X;

zz3=r3.*Z;yy1=r3.*Y;xx1=r3.*X1;

plot3(xx1(r1~=0),yy1(r1~=0),zz1(r1~=0),'k*');

plot3(xx2(r2~=0),yy2(r2~=0),zz2(r2~=0),'k*');

plot3(xx3(r3~=0),yy3(r3~=0),zz3(r3~=0),'k*');

colormap(hsv);

曲面与曲面求交

[x,y]=meshgrid(-2:.1:2);

z1=x.^2-2*y.^2;

z2=x.^2+y.^2-5;

mesh(x,y,z1);

hold on

mesh(x,y,z2);

r0=(abs(z1-z2)<=.1);

zz=r0.*z1;yy=r0.*y;xx=r0.*x;

plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'k*')

colormap(cool)

hold off

[本帖最后由 dianxin05 于 2009-4-29 10:12 编辑]

matlab给定四点求交点,Matlab有关曲线求交点程序分享相关推荐

  1. 求两条曲线的交点 matlab,matlab求两条曲线交点

    用Matlab 实现了 3 次样条曲线插值的算法.边界条件取为自然边界条件,即:... 二元一次函数曲线拟合的Matlab实现_IT/计算机_专业资料.第 27 卷 1... (x1)); y2=in ...

  2. matlab怎么求两个数的和,matlab怎么求出两个函数的交点

    matlab中,两个自变量的函数怎么求最大值(急!1) 需求:利用matlab求解二元函数y=f(x1,x2)=(339-0.01*x1-0.003*x2)*x1+(399-0.004*x1-0.01 ...

  3. Matlab 散点 拟合 曲率,有数据点,希望得到一条拟合曲线,再求出这条曲线的曲率,求助!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 得到X,Y的数据点后,我尝试用origin7.5的analysis-fit sigmoidal功能拟合出曲线,由于方程太复杂,用公式计算很困难,我想用or ...

  4. Matlab计算微分方程曲线求导及过曲线上点的切线方程

    Matlab计算微分方程曲线求导及过曲线上点的切线方程 求解f(x)=x^2一元二次方程上某点的切线方程并绘制出方程的切线图.点(4,f(4))是曲线方程f(x)上的一个点,求出该点的切线并绘制出来. ...

  5. 如何用matlab算导数曲线,excel 曲线求导_excel怎样对表格中数据进行求导

    怎样在两个EXCEL表中导数值 用VLOOKUP函数. 举例:看图片上的例子 =VLOOKUP(E2,A:B,2,0) 这个公式的含义是,E2就是你说的表1上的名称这个单元格,A:B就是2表中的两列, ...

  6. matlab求曲线极值程序,matlab函数求极值matlab函数求极值.ppt

    matlab函数求极值matlab函数求极值 * * 函数的极值 1.一元函数的极值 函数命令:fminbnd 调用格式:[x,feval,exitflag,output]=fminbnd(fun,x ...

  7. matlab求点,MATLAB求两点中点

    已知两点坐标,连接这两点,求线段的中点坐标.有没有什么公式啊? A(x1,y1).B(x2,y2),则AB中点是M((x1+x2)/2,(y1+y2)/2) 如何用MATLAB做出一个求两点间最短距离 ...

  8. 迭代法求平方根 MATLAB,用迭代法的思想 给出求根号(2 根号(2 根号(2 根号2)))的迭代格式...

    用牛顿迭代法 求方程 2*x*x*x-4*x*x+3*x-6 的根 先去看看计算方法学习一下"牛顿迭代法"吧,不然就算懂了这个小程序也意义不大,真的 用C语言编程求牛顿迭代法求方程 ...

  9. 根据坐标如何在matlab中l连成曲线,matlab中,如何将两条曲线画在一个坐标系里,plot(x1,x2,y1,y2)还是怎样...

    matlab中,如何将两条曲线画在一个坐标系里,plot(x1,x2,y1,y2)还是怎样以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快 ...

最新文章

  1. python数据库哪个好_终于明了python用什么数据库好
  2. onlyoffice更新中文字体总结
  3. 四川省内二本计算机公立好的大学排名,四川有哪些二本院校是公立的?附四川省公立二本大学排名及分数线...
  4. java 单例模式_谈谈Java中的单例模式
  5. 深度学习caffe:权值初始化
  6. 查看程序用运时占用的内存
  7. MTK 增加Factory模式命令
  8. 考计算机证书指南,计算机二级证书:备考和实战指南--教育频道[温州网]
  9. 综述:图像风格化算法最全盘点 | 内附大量扩展应用
  10. Java 面试之单子模式
  11. Consolidation Mappings
  12. 邮箱客户端程序的实现
  13. 管理Linkedin账号三步曲,高效管理领英账号。
  14. 无所不能的Java系列文章
  15. 视频流RTSP转RTMP与RTSP转M3U8实战
  16. 蛋白质ph稳定性计算机模拟,蛋白质二聚体相互作用和识别的计算机模拟
  17. ProtoBuf - 详解
  18. vue中用canvas实现移动端手写板、电子签名功能
  19. 杰理之统一音量控制【篇】
  20. 那些年啊,那些事——一个程序员的奋斗史 ——123

热门文章

  1. python程序开子进程打包成exe文件运行炸内存原因剖析
  2. java 连接sqlitle_ASP连接SQL2005数据库连接代码
  3. 根据录入的计算公式计算_工业铝型材承重计算
  4. socket编程中的异常处理
  5. Delphi开发步骤经验谈(C++亦实用)
  6. 【C/C++多线程编程之五】pthread线程深入理解
  7. 以操作系统的角度述说线程与进程
  8. 白话详细解读(六)----- BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation
  9. unknown bottom blob ‘data‘ (layer ‘data_fixed‘, boblob ‘data‘ (layer ‘data_fixed‘, bottom index 0)
  10. 熊市利好,Bit-Z推出币圈最高返佣50%