# How to show a deformation of a sphere

6 views (last 30 days)
Daniele Cuomo on 18 Jun 2020
Commented: Daniele Cuomo on 18 Jun 2020
I want to show a function that take a sphere with radius 1 as input and that gives in output an ellipsoid with axes always lower then 1.
tiledlayout(1,2);
[X, Y, Z] = ellipsoid(0,0,0,1,1,1,40);;
surf(nexttile,X,Y,Z);
axis equal;
title('Before')
mesh(nexttile,X/2,Y/2,Z/2);
axis equal
title('Then')
The problem with this code is that, instead of seeing a deformation of the sphere I get an adaptation of the axis. I'd like to fix the axes to be unitary for both the subfigures.

darova on 18 Jun 2020
You mean this?
[X, Y, Z] = sphere(40);
surf(X,Y,Z,'facecolor','none');
surface(X/2,Y/2,Z/2);
Daniele Cuomo on 18 Jun 2020
Yes! But in two different subplots.

Bjorn Gustavsson on 18 Jun 2020
Keep track of the x, y, and z-lims or the axis-limits. Something like this:
tiledlayout(1,2);
[X, Y, Z] = ellipsoid(0,0,0,1,1,1,40);;
surf(nexttile,X,Y,Z);
axis equal;
ax1 = axis;
title('Before')
mesh(nexttile,X/2,Y/2,Z/2);
axis equal
title('Then')
axis(ax1)
You might have to do the same for the viewing-angles too, but the same procedure applies.
HTH

#### 1 Comment

Daniele Cuomo on 18 Jun 2020
Thanks a lot!