天天看點

matlab繪制球面模型_matlab繪制球面及柱面(急!!!!)

你看看程式,不懂得可以問我。%程式xgrid = -2:0.1:2;ygrid = -2:0.

由熱心網友提供的答案1:

1、首先我們打開Matlab軟體,預設彈出視窗 Command Window,将已請确定的(x,y,

matlab繪制球面模型_matlab繪制球面及柱面(急!!!!)

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繪制球面模型_matlab繪制球面及柱面(急!!!!)

擴充閱讀,根據您通路的内容系統為您準備了以下擴充内容,希望對您有幫助。

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;