# 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}$

2 vues (au cours des 30 derniers jours)
Atom le 5 Juin 2022
Commenté : Atom le 9 Juin 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);
##### 2 commentairesAfficher AucuneMasquer Aucune
Jeffrey Clark le 5 Juin 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 le 7 Juin 2022
@Atom let me know if I missed your real question.

Connectez-vous pour commenter.

### Réponse acceptée

KSSV le 7 Juin 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
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Atom le 9 Juin 2022
Thanks...How to make the region of intersection S by a different colour (like the above fig)

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Surface and Mesh Plots dans Help Center et File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by