如何用MATLAB在直角坐标系下绘制球面x^2+y^2+z^2=4被柱面(x-1)^2+y^2=1截得的部分曲面.急!谢谢
展开全部
clear;clc;
r=1;%r的值自己改
%柱面部分
t=linspace(0,2*pi,37);
q=linspace(-1,1,11);
[tt,qq]=meshgrid(t,q);
x=r/2*(cos(tt)+1);
y=r/2*sin(tt);
z=r*sqrt((1-cos(tt))/2).*qq;
mesh(x,y,z)
hold on
%球面部分
p=acos(sin(tt/2)).*qq;
xx=r*sin(tt/2).*cos(p);
yy=r*sin(tt/2).*sin(p);
zz=r*cos(tt/2);
mesh(xx,yy,zz)
axis equal
————————————————
另一种方法
clear;clc;
r=1;%r的值自己改
t=linspace(0,1);q=linspace(-1,1);
[x,y,z]=meshgrid(t,q/2,q);
c=cat(4,x.^2+y.^2+z.^2-r^2,x.^2+y.^2-r*x);
v=max(c,[],4);
isosurface(x,y,z,v,0);
axis equal;grid on;
非原创 前人留下 自己收藏
这是用matlab画球面x^2+y^2+z^2=r^2和柱面x^2+y^2=rx相交所成区域
r=1;%r的值自己改
%柱面部分
t=linspace(0,2*pi,37);
q=linspace(-1,1,11);
[tt,qq]=meshgrid(t,q);
x=r/2*(cos(tt)+1);
y=r/2*sin(tt);
z=r*sqrt((1-cos(tt))/2).*qq;
mesh(x,y,z)
hold on
%球面部分
p=acos(sin(tt/2)).*qq;
xx=r*sin(tt/2).*cos(p);
yy=r*sin(tt/2).*sin(p);
zz=r*cos(tt/2);
mesh(xx,yy,zz)
axis equal
————————————————
另一种方法
clear;clc;
r=1;%r的值自己改
t=linspace(0,1);q=linspace(-1,1);
[x,y,z]=meshgrid(t,q/2,q);
c=cat(4,x.^2+y.^2+z.^2-r^2,x.^2+y.^2-r*x);
v=max(c,[],4);
isosurface(x,y,z,v,0);
axis equal;grid on;
非原创 前人留下 自己收藏
这是用matlab画球面x^2+y^2+z^2=r^2和柱面x^2+y^2=rx相交所成区域
追问
没啥用,.....
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询