求教:用matlab如何画曲面与平面的截痕?例如x^2+y^2+z^2=1与x=0.5

如题所述

theta=0:0.1:2*pi;

y=0.75*cos(theta);

z=0.75*sin(theta);

plot3(ones(size(theta))*0.5,y,z)

grid on

追问

这个不能使用两个图像的方程么?而且我感觉这个方法有一定局限性啊,那比如求单页双曲面x^2/4+y^2/9-z^2/16=1与x=0.5,y=0.5,z=0.5三个平面的分别的交线如何做呢?

追答

%可以用匿名函数实现,如算与x=0.5相交的
f=@(y) @(z) y^2/9-z^2/16-1+0.5^2/4;
yy=sqrt(1-0.25/4)*3:0.1:5;
plot3(ones(size(yy))*0.5,yy,arrayfun(@(y) fzero(f(y),3),yy),'*-');%用arrayfun 求解不同的y对应的z

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-31
clear;
clc;

[fx,fy,fz]=meshgrid(linspace(-1,1));
fv=fx.^2+fy.^2+fz.^2-1;
contourslice(fx,fy,fz,fv,0.5,[],[],[0 0]);
view(3)本回答被网友采纳
相似回答