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

 채택된 답변

Walter Roberson
Walter Roberson 2018년 4월 22일

0 개 추천

"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

Thanks! really helpful
Please could you explain what ",:"means in "11:end,:" ?
: 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"

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

태그

질문:

2018년 4월 22일

댓글:

2018년 4월 22일

Community Treasure Hunt

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

Start Hunting!

Translated by