你看看程式,不懂得可以問我。%程式xgrid = -2:0.1:2;ygrid = -2:0.
由熱心網友提供的答案1:
1、首先我們打開Matlab軟體,預設彈出視窗 Command Window,将已請确定的(x,y,
x=-10:0.1:10;y=x;z=x;[x,y,z]=meshgrid(x,y,z); f1=x.^2+y.^2+z.^2-4; f2=x.^2+y.^2-1;f3=x.^2+z.^2-1;f4=z.^2+y.^2-1;p1=patch(isosurface(x,y,z,f1,0)); set(p1, 'FaceColor', 'b', 'EdgeColor', 'none'); p2=patch(isosurface(x,y,z,f2,0)); set(p2, 'FaceColor', 'r', 'EdgeColor', 'none'); p3=patch(isosurface(x,y,z,f3,0)); set(p3, 'FaceColor', 'y', 'EdgeColor', 'none'); p4=patch(isosurface(x,y,z,f4,0)); set(p4, 'FaceColor', 'h', 'EdgeColor', 'none'); daspect([1 1 1])view(3); axis tightcamlight;lighting phong 圖像出來之後,注意旋轉一下圖像3D,否則隻能看到2維平面圖。
1. 如何用MATLAB 在同一坐标下繪出球面x^2+y^2+z^2=4被柱面(x-1)^2+y^2
擴充閱讀,根據您通路的内容系統為您準備了以下擴充内容,希望對您有幫助。
Matlab題目:繪制一個半徑為2的球面,在球面的内部繪制一個半徑為1,高為1的柱面.急急急!!!
clc
clear
[x y z]=sphere(50);
mesh(2*x,2*y,2*z);
hold on
R=1;%半徑
h=1;%圓柱高度
m=100;%分割線的條數
[x,y,z]=cylinder(R,m);%建立以(0,0)為圓心,高度為[0,1],半徑為R的圓柱
z=h*z;%高度放大h倍
mesh(x,y,z)%重新繪圖
如何用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相交所成區域追問沒啥用,.....
用matlab畫球面和柱面相交所成區域
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;