作业帮 > 综合 > 作业

matlab 怎么画两个曲面的交线.

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/26 21:46:15
matlab 怎么画两个曲面的交线.
一个曲面是椭球:
:x.^2/4+y.^2/4+z.^2/4-x=0
另一个是平面:
(307620*x)/2908093 + (10070*y)/28793 + 671042474/363511625
请问,matlab程序怎么写?
matlab 怎么画两个曲面的交线.
d=0.05;
[x,y,z]=meshgrid(0:d:4,-2:d:2,-2:d:3);
v=x.^2/4+y.^2/4+z.^2/4-x;
p=isosurface(x,y,z,v,0);

fz=@(x,y) (307620*x)/2908093 + (10070*y)/28793 + 671042474/363511625;
[xx yy]=meshgrid(0:d:4,-2:d:2);
zz=fz(xx,yy);

f=@(x,y) x.^2/4+y.^2/4+(fz(x,y)).^2/4-x;
c=contours(xx,yy,f(xx,yy),[0 0]);
xxx=c(1,2:end);yyy=c(2,2:end);
zzz=fz(xxx,yyy);

mesh(xx,yy,zz,'edgecolor','none','facecolor','r','facealpha',0.3);hold on
patch(p,'edgecolor','none','facecolor','b','facealpha',0.3);
plot3(xxx,yyy,zzz,'k','linewidth',1);hold off
axis equal;


再问: 请问如果用contourslice该怎么写?
再答: d=0.05;
[x,y,z]=meshgrid(0:d:4,-2:d:2,-2:d:3);
v=x.^2/4+y.^2/4+z.^2/4-x;
p=isosurface(x,y,z,v,0);

[xx yy]=meshgrid(0:d:4,-2:d:2);
zz=(307620*x)/2908093 + (10070*y)/28793 + 671042474/363511625;

mesh(xx,yy,zz,'edgecolor','none','facecolor','r','facealpha',0.3);hold on
patch(p,'edgecolor','none','facecolor','b','facealpha',0.3);
contourslice(x,y,z,v,xx,yy,zz,[0 0]);hold off
axis equal;