# How to plot such a complete figure by matlab. The hemisphere is $x^2+y62+z^2=4$ and the cylinder is $x^2+y^2=1$ with bases $z=0$ and $z=\sqrt{3}$

3 views (last 30 days)
Atom on 5 Jun 2022
Commented: Atom on 9 Jun 2022
How to plot such a complete figure by matlab. The hemisphere is $x^2+y62+z^2=4$ and the cylinder is $x^2+y^2=1$ with bases $z=0$ and $z=\sqrt{3}$
The code of hemisphere
R = 2;
[X,Y] = meshgrid(-2:.1:2);
Z = sqrt(R.^2 - X.^2 - Y.^2);
Z(imag(Z) ~= 0) = 0;
mesh(X,Y,Z);
Jeffrey Clark on 5 Jun 2022
You can use the sphere (scaled by 4) and cylinder and limit what is shown in the yellow area by finding intersect of cylinder and sphere z value: z^2 = 4 - (x^2 + y^2) and from cylinder x^2 + y^2 = 1 therefore min z^2 = 4 - 1 and max z^2 = 4. Just draw sphere points where z in [ sqrt(3) .. 2 ].
Jeffrey Clark on 7 Jun 2022
@Atom let me know if I missed your real question.

KSSV on 7 Jun 2022
I would go by parametric equations.
%% Sphere
R = 2 ;
th = linspace(0,2*pi) ;
phi = linspace(0,pi/2) ;
[T,P] = meshgrid(th,phi) ;
X1 = R*cos(T).*sin(P) ;
Y1 = R*sin(T).*sin(P) ;
Z1 = R*cos(P) ;
%% Cyclinder
R = 1 ;
H = sqrt(3) ;
th = linspace(0,2*pi);
h = linspace(0,H) ;
[T,H] = meshgrid(th,h) ;
X2 = R*cos(T);
Y2 = R*sin(T) ;
Z2 = H ;
mesh(X1,Y1,Z1,'FaceAlpha',0.5)
hold on
mesh(X2,Y2,Z2)
axis equal
Atom on 9 Jun 2022
Thanks...How to make the region of intersection S by a different colour (like the above fig)