Borrar filtros
Borrar filtros

Trouble Understanding Code for a Hemisphere

1 visualización (últimos 30 días)
Jonathan Bird
Jonathan Bird el 22 de Abr. de 2018
Comentada: Walter Roberson el 22 de Abr. de 2018
I have used the following code to create a hemisphere with radius 10. Unfortunately I don't really understand what the code does, so if someone could explain this that would be great. Please try to be as detailed as possible, thanks.
figure (1)
[x,y,z]=sphere;
x=x(11:end,:);
y=y(11:end,:);
z=z(11:end,:);
r=10;
hemisphere=surf(r.*x,r.*y,r.*z);
axis equal

Respuesta aceptada

Walter Roberson
Walter Roberson el 22 de Abr. de 2018
"sphere generates a sphere consisting of 20-by-20 faces."
so accessing the coordinates from 11 onwards would be only half of a sphere.
"The sphere function generates the x-, y-, and z-coordinates of a unit sphere for use with surf and mesh."
If you multiply coordinates based on the unit sphere by the radius of the sphere, then you get a sphere of that radius.
Then you draw the surface. After that you tell MATLAB that you want the x, y, and z axes to be the same spacing as each other (the default is to stretch the data to whatever the current size of the axes is.)
  3 comentarios
Jonathan Bird
Jonathan Bird el 22 de Abr. de 2018
Please could you explain what ",:"means in "11:end,:" ?
Walter Roberson
Walter Roberson el 22 de Abr. de 2018
: by itself means the same as 1:end which in turn means the same as 1 : size(TheArray,AppropriateDimensionNumber) .
In short, : by itself in that context means "all columns"

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by