spano 发表于 2007-11-8 16:39

能否用Matlab求两不规则曲面的交线

现有两组三维坐标数据,每组可以构成一个曲面,想得到两个曲面的交线
没有接触过Pro/E、UG,想问下用matlab能不能实现这个功能

donkeyxu 发表于 2007-11-8 17:28

当然可以

花如月 发表于 2007-11-8 17:57

回复 #1 spano 的帖子

去精华区看看

donkeyxu 发表于 2007-11-8 19:00

小例子:球与平面的交线.
不一样的曲面如果有具体函数,就把程序中的w1,w2,表达式换掉,一样可以画出交线来

syms x y;
w1=sqrt(25-x^2-y^2);%曲面1的函数表达式
w2=-0.1*x-0.1*y+3;                     %曲面2的函数表达式
k=1;
=meshgrid([-6:k:6],[-6:k:6]);
z1=double(subs(w1,{'x','y'},{a,b}));
a1=find(imag(z1));z1(a1)=NaN;
z2=double(subs(w2,{'x','y'},{a,b}));
a2=find(imag(z2));z2(a2)=NaN;
h1=surf(a,b,z1);hold on;
h2=surf(a,b,z2);shading flat
g=find(abs(z1-z2)<=10.^(-2));
while length(g)<200
    a=[];b=[];
    k=k/4;=meshgrid([-6:k:6],[-6:k:6]);
    z1=double(subs(w1,{'x','y'},{a,b}));
   a1=find(imag(z1));z1(a1)=NaN;
   z2=double(subs(w2,{'x','y'},{a,b}));
   a2=find(imag(z2));z2(a2)=NaN;
   g=find(abs(z1-z2)<=10.^(-2));
end
plot3(a(g),b(g),z2(g),'*black');axis equal;

[ 本帖最后由 donkeyxu 于 2007-11-8 20:08 编辑 ]

VibrationMaster 发表于 2007-11-8 19:25

大概需要自己写点程序

spano 发表于 2007-11-9 19:53

我先看看,想把交线上的点提取出来,然后用CAD画出来
页: [1]
查看完整版本: 能否用Matlab求两不规则曲面的交线