声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1701|回复: 5

[绘图技巧] 能否用Matlab求两不规则曲面的交线

[复制链接]
发表于 2007-11-8 16:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

发表于 2007-11-8 17:28 | 显示全部楼层
当然可以
发表于 2007-11-8 17:57 | 显示全部楼层

回复 #1 spano 的帖子

去精华区看看
发表于 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;
[a,b]=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;[a,b]=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 编辑 ]
发表于 2007-11-8 19:25 | 显示全部楼层
大概需要自己写点程序
 楼主| 发表于 2007-11-9 19:53 | 显示全部楼层
我先看看,想把交线上的点提取出来,然后用CAD画出来
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-12 08:39 , Processed in 0.103478 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表