怎么在MATLAB中画出x^2+y^2=1且y^2+z^2=1的图像

如题所述

如果求一般性的两个三维曲面的交线还是有一些难度的(尤其对于两个曲面都是隐函数的情况),但本题是两个单位柱面的交线,情况比较特殊,用参数方程比较容易。

不妨以x-y平面内的相角t为参变量,则满足第一个柱面方程的x和y分别为cos(t)和sin(t),而由第二个柱面方程不难解出z=sqrt(1-y^2)或z=-sqrt(1-y^2)。

 

参考代码:

[x,y,z]=cylinder(1,200);
z=2.2*z-1.1;
cla
a=0.3;
mesh(x,y,z,'edgecolor','none','facecolor','r','facealpha',a)
hold on
mesh(z,x,y,'edgecolor','none','facecolor','g','facealpha',a)

axis equal

t=linspace(0,2*pi,200);
x=cos(t);
y=sin(t);
z1=sqrt(1-y.^2);
z2=-sqrt(1-y.^2);
plot3(x,y,z1,x,y,z2,'linewidth',3)
view(60,10)
xlabel x; ylabel y; zlabel z

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-26
把这两个方程化成参数方程,然后根据参数方程画就出来了
第2个回答  推荐于2017-06-26
alpha=0:pi/20:2*pi;%角度[0,2*pi]
R=1;%半径
x=R*cos(alpha);
y=R*sin(alpha);
plot(x,y,'o-')
axis equal
不好意思没看清你的问题,以上是具体实现代码本回答被网友采纳