24小时热门版块排行榜    

查看: 2958  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

kkx1986

金虫 (正式写手)

[求助] 应用matlab求两个曲面的交线

%第一曲面三个顶点的坐标
%第一点轨迹

x11=A*sin(w*t);
y11=vw*t+(ds/2)*sin(ws*t);
z11=0.5*ds*(1-cos(ws*t));
%plot3(x11,y11,z11)
%第二点轨迹
x12=x11+H*tan(theta);
y12=y11;
z12=z11+H;
%第三点轨迹
x13=x11-H*tan(theta);
y13=y11;
z13=z11+H;

%第二个曲面三个顶点的坐标
%第一点轨迹
x21=A*sin(w*(t+5*L/vs));
y21=vw*(t+5*L/vs)+(ds/2)*sin(ws*t);
z21=0.5*ds*(1-cos(ws*t));
%hold on
%plot3(x21,y21,z21,'r')
%第二点轨迹
x22=x21+H*tan(theta);
y22=y21;
z22=z21+H;
%第三点轨迹
x23=x21-H*tan(theta);
y23=y21;
z23=z21+H;

X1=[x12; x11; x13];
Y1=[y12; y11; y13];
Z1=[z12; z11; z13];

X2=[x22; x21; x23];
Y2=[y22; y21; y23];
Z2=[z22; z21; z23];
mesh(X1,Y1,Z1);
hold on
mesh(X2,Y2,Z2);


怎么求这两个曲面的交线,我在网上搜了一下,都是要求方程是z=f(x,y)这种显示表示的。
回复此楼
千头万绪净心第一不净心全是废话,二六时中精进为先不精进一事无成。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kkx1986

金虫 (正式写手)

引用回帖:
6楼: Originally posted by leedobb at 2013-03-22 14:15:24
只有一个参数坐标,只能是曲线,而不可能是曲面。...

clear all; clc; close all
ds=0.05;
vw=-0.6702;
vs=18.3;
a=0.001;
f=20000;
h=0.001;
A=0.000016;
w=2*pi*f;
ws=2*vs/ds;
angle=acos(1-2*h/ds);
L=0.001;
H=0.0001;
theta=pi/9;
T=angle/ws;
t=-T:0.000001:T;
%第一个曲面三个顶点轨迹
%第一点轨迹

x11=A*sin(w*t);
y11=vw*t+(ds/2)*sin(ws*t);
z11=0.5*ds*(1-cos(ws*t));
%plot3(x11,y11,z11)
%第二点轨迹
x12=x11+H*tan(theta);
y12=y11;
z12=z11+H;
%第三点轨迹
x13=x11-H*tan(theta);
y13=y11;
z13=z11+H;

%第二个三个顶点轨迹
%第一点轨迹
x21=A*sin(w*(t+5*L/vs));
y21=vw*(t+5*L/vs)+(ds/2)*sin(ws*t);
z21=0.5*ds*(1-cos(ws*t));
%hold on
%plot3(x21,y21,z21,'r')
%第二点轨迹
x22=x21+H*tan(theta);
y22=y21;
z22=z21+H;
%第三点轨迹
x23=x21-H*tan(theta);
y23=y21;
z23=z21+H;
%点连成线
%X=[x11; x12; x13; x11];
%Y=[y11; y12; y13; y11];
%Z=[z11; z12; z13; z11];
%plot3(X,Y,Z);
%点连成面

X1=[x11; x12; x13; x11];
Y1=[y11; y12; y13; y11];
Z1=[z11; z12; z13; z11];

X2=[x21; x22; x23; x21];
Y2=[y21; y22; y23; y21];
Z2=[z21; z22; z23; z21];
C1=2*ones(size(Z1));
mesh(X1,Y1,Z1,C1)

hold on
C2=4*ones(size(Z2));
patch(X2,Y2,Z2,C2)

grid
axis equal

xlabel('x(t)');
ylabel('y(m)');
zlabel('z(m)');
千头万绪净心第一不净心全是废话,二六时中精进为先不精进一事无成。
8楼2013-03-23 11:11:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

715211229

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
不知道查找相同坐标点行不行,由于数值四舍五入,即使同一个数也可能认为不相同,你可以试一下行不行

[ 发自手机版 http://muchong.com/3g ]
我是蜗牛
2楼2013-03-22 07:52:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kkx1986

金虫 (正式写手)

引用回帖:
2楼: Originally posted by 715211229 at 2013-03-22 07:52:31
不知道查找相同坐标点行不行,由于数值四舍五入,即使同一个数也可能认为不相同,你可以试一下行不行

我试过查找相同点的坐标,不过第一步应该是要让两个曲面的坐标同步才可以,我以前做过二维的,先用linespace,然后再插值,最后查找相同点,但是因为初学,三维不知道怎么做。
我找了一个三维与linespace对应的命令,meshgrid,但是离散后,不知道怎么再插值。
千头万绪净心第一不净心全是废话,二六时中精进为先不精进一事无成。
3楼2013-03-22 10:31:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leedobb

金虫 (正式写手)

你问题都没叙述清楚,你的曲面那个是参数坐标,哪个是常数都没写清。
直接放到matlab也画不出来。
有一天,我打了个瞌睡就到了这里,但我知道我掉入了时光的循环中,虽得以永生,但只有第一个循环有意义。
4楼2013-03-22 13:16:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见